안녕하세요?


지난번 포스팅에서 인스턴스를 이용해서 다른 스크립트의 변수나 메소드를 가지고 올 수도 있지만, 반대로 이 스크립트에서 다른 스크립트로 변수나 메소드에 영향을 줄 수 있다는 것도 언급을 하면서 마쳤습니다. 그래서 이번 포스팅에서는 이 방식을 이용해서 제대로 작동을 하는 지를 포스팅 하고자 합니다.



일단 유니티5로 돌아와서 LevelGenerator2라고 비활성화가 되어 있는 발판 생성자를 선택 하도록 합니다.



그리고 나서 LevelStartPoint를 기존의 게임 오브젝트에서 새 게임 오브젝트로 바꾸어 주도록 합니다.



일단 제대로 작동이 되는 것 처럼 보이기는 합니다.



1차적으로 완성한 발판입니다. 여기서는 다른 것은 다 완벽해 보였는데, 녹화가 된 화면을 보니까, 왼쪽 끝에서 발판이 덜 생성이 되는 것을 볼 수 있었습니다. 지금 Speed가 업그레이드가 적용된 16이라서 그렇지, 혹시 기본 스피드라면 문제가 생기는 것이 아닌가 하는 생각이 들었습니다.




한번 실험을 해 보니까 역시나 아래로 떨어지는 현상이 벌어지는 것 이었습니다. 이것으로 봐서, 너무 AnotherStartPoint가 우측으로 온게 아닌가 하는 생각이 들었습니다. 그래서 이걸 보완해야 할 필요성이 있다는 생각이 들었습니다.



일단 LevelGenerator.cs를 찾아가 보도록 했습니다.



그리고 위 스크린샷처럼 새로운 Vector3 형식의 변수를 만들어 주었습니다. 여기서 중요한 것은 Vector3 형식의 변수에 좌표값을 입력하기 위해서는 아래와 같은 규칙을 지켜야 한다는 것 입니다.


Vector3 변수이름 = new Vector3(x축 좌표, y축 좌표, z축 좌표);


여기서 new를 빼먹어서 한동안 해메었는 기억이 있는데, 이걸 빼먹지 말도록 앞으로 조심을 해야 겠다는 생각을 하면서 계속해서 작업을 이어서 가도록 했습니다.



마지막으로 위 스크린샷처럼 Vector3형식의 변수를 -해 주는 것으로 원래라면 생성된 새로운 포지션에다가 좌측으로 -30정도 더 옆으로 가서 생성이 되도록 해 줍니다.




이렇게 하는 것으로 이제 마지막 오류까지 해결을 하는 데 성공하였습니다. 이제 겉으로 보기에는 발판에 관련된 문제는 해결이 된 것을 볼 수 있습니다.



다만 마지막으로 위 스크린샷의 에러가 뜨는데, 이건 새로 만든 C#스크립트의 줄바꿈 표시가 인코딩을 하면서 에러를 일으키는 것 이기 때문에, 이를 수정해 줄 필요가 있습니다.



그래서 다른 이름으로 저장하기에서 따로 있는 버튼을 눌러서 위 스크린샷처럼 바꾸어 주면 작업이 완료가 되었다고 볼 수 있습니다. 이것으로 어떻게 발판이 바뀌는 것에 대해서 오류가 나오는 것을 해결하기는 했는데, 문제가 하나 있다면 있다고 볼 수 있습니다. 바로 당초 계획을 하였는 발판과 패럴렉스 스크롤이 동시에 바뀌는 것인데, 이 과제를 해걸하는 것이 바로 89번째 걸음이 될 것이며....... 앞으로 얼마나 많은 난관이 있을지 모르겠다는 생각이 듭니다.

+ Recent posts

티스토리 툴바