유니티 슬라이드처럼 나오게 하는 방법

연구실에 처음 들어갔을때 Unity로 만든건 게임이 아니라 설문지였다........

설문조사를 받을때 단순이 1점부터 5점이 아니라 좀 더 무의식속에서 얻어낼 수 있는 점수를 원한 것이었을까....

아무튼 슬라이더바를 이용해서 점수를 얻는 것이기 때문에 C코드 약간만 배우고 unity를 한번도 다뤄본 적이 없는 초보가 겁없이 뛰어들다가 많은 고통을 받았다.ㅠ

유니티 슬라이드처럼 나오게 하는 방법

8개의 버튼은 누르게 되면 해당 설문지 화면으로 넘어가게 됩니다.

설문조사는 슬라이더를 밀면서 점수를 자동으로 저장하게 되고요.

나중에 저장한 값들을 따로 txt파일로 만들어 뱉어낼 수 있게 됩니다.

- 씬 불러오기

유니티 슬라이드처럼 나오게 하는 방법

Application.LoadLevel("이동할 씬 이름"); 을 사용해 씬을 이동할 수 있습니다.

에셋의 스크립트를 main camera에 넣는거 잊지마세요. 이부분은 unity가 익숙해져도 자꾸 까먹게 됩니다.

그리고 씬을 만들어 주면 항상 Player setting에서 scene 추가하는것도 잊지마세요.

유니티 슬라이드처럼 나오게 하는 방법

그리고 해당 버튼에서 버튼 클릭시 씬 이동할 수 있도록 main camera를 붙여넣고 만들어준 스크립트의 함수를 지정해 줍니다. 함수를 지정해 주지 않으면 해당 버튼을 아무리 눌러도 지정된 함수가 없기 때문에 동작하지 않습니다.

유니티 슬라이드처럼 나오게 하는 방법

그러면 home키를 누르니 씬이동 함수가 활성화 되며 씬이 이동합니다.

- 여러개 버튼 만들기

유니티 슬라이드처럼 나오게 하는 방법

유니티에서 보통 [ ]는배열값이 필요할때 생성하게 됩니다.

여기서는 버튼을 할당할 수 있도록 만들어 주었습니다.

유니티 슬라이드처럼 나오게 하는 방법

같은 방식으로 버튼 8개 다 함수를 지정해 주었습니다.

유니티 슬라이드처럼 나오게 하는 방법

이제 버튼을 누르면 씬이 이동가능하게 됩니다.

- 여러개 슬라이더 만들기

유니티 슬라이드처럼 나오게 하는 방법

스크립트에 public Slider로 슬라이더 4개 변수를 만들어 줍니다.

그리고 값도 받아 저장하도록 value1부터 4까지 만들어 주었습니다.

좀 더 반복적이지 않게 만들방법도 있었겠지만.....이때의 unity 초보에게는 너무나도 큰 사치이죠.

유니티 슬라이드처럼 나오게 하는 방법

pubic을 이용한 할당은 방법이 단순합니다.

public은 하이어라이키에 나타나게 해주기 때문에 스크립트가 아니라 바깥에서 조작하기 편합니다. 적절하게 이용해 주도록 합시다.

쨋든 아까처럼 똑같이 해주시면됩니다.

유니티 슬라이드처럼 나오게 하는 방법
유니티 슬라이드처럼 나오게 하는 방법

유니티 실행 후 슬라이더를 움직여 보면 그 움직인 값만큼 디버그 로그가 찍히게 되네요.

디버그 로그는 상태를 알아보기 참 쉽지만 그만큼 반복해서 나오고 쌓이는 쓰레기이기도 해서 실제로 unity를 빌드할 때는 디버그 로그를 꺼주는 함수를 사용하거나 미리 스크립트에서 지워주는게 용량도 덜 차지하고 좋습니다.

특히 해비한 게임을 제작하게 되면 이런 조그마한 부분도 눈덩이 처럼 불어나기 때문에 용량 문제는 언제나 중요하다고 합니다.

- 스크롤 생성

유니티 슬라이드처럼 나오게 하는 방법

여러개의 슬라이더를 사용하게 된다면 그만큼 화면에 다 보여줄 수 없게 됩니다.

계속 씬을 만들어주는것은 해비한 파일을 만들때 부담이되고 일일이 페이지를 활성화 비활성화 시키는것도 번거롭죠.

그래서 세로로 슬라이더를 붙여서 스크롤을 내려줄 수 있게된다면 더 편리하겠다고 생각했습니다.

Add component로 scrol rect를 불러와 주세요. (세로로된 스크롤바로써 작동할 녀석입니다.)

Panel을 생성하고 그 안에 슬라이더를 만들어 줍니다.

그 슬라이더는 Content에 넣어주면 스크롤바 안에서 나타나게 됩니다.

그리고 Panel 밖에서 슬라이더바를 하나 만들어 주시고 vertical scrollbar에 붙여서 스크롤바 역할을 가능하도록 만듭니다.

Mask 컴포넌트도 불러와 주세요. 이건 panel 크기 이외의 콘텐츠 부분은 보이지 않도록 해 줍니다.

그냥 슬라이더를 쓸때는 그냥 해당 오브젝트에 넣어주거나 약간의 조작만 하면 됬지만 아예 화면을 스크롤 할 수 있게 만드는 것은 또다른 문제더라구요. 일단 저렇게 만들어 주면 동작은 합니다.

더 큰 꿈은 저 안에서 생성될 슬라이더들도 미리 입력받은것만큼 생성되는 것인데.......

결국 다른 연구하게 되면서 거기까진 가지 못했다는 전설이 ㅠㅠ

유티니는 거미줄처럼 연결되어 있다보니깐 자기가 뭘 만들고 있는지 그물같은 구조를 기억해 놓지 못하면 다시 기억 상기시키는 것도 어렵고 만들었던 함수를 못알아 보기까지 하니 꽤 힘들더라구요.

이런거 쳐다만 보고 쓱쓱 기억하는 사람들 보면 신기방기합니다.

모두들 유니티 쉽고 빠르게 만들 수 있길바라고 조금이라도 도움이 되었으면하네요.