본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그12번째 걸음-책의 오타인지 설명의 누락인지 모를 일

by 인터넷떠돌이 2017. 6. 2.
반응형

안녕하세요?


지난번 시간에 이야기한 대로 이번 포스팅에서 챕터6를 다 실습해 보려고 했습니다만, 예상치 못한 일이 발생해서 다 실습을 할 수 없었습니다. 아무튼 그런데로 여기까지 실습을 하기는 했으니, 그 내용을 포스팅 하고자 합니다.



먼저 PlayerData라는 게임 오브젝트를 생성하도록 합니다. 그 다음에는 PlayerData.cs라는 C# 스크립트를 생성해서 추가하도록 합니다.



우선 위 스크린샷에서 void Start() 함수 위에다가 변수들을 여러개 설정해 두도록 합니다. 여기서 long이라는 변수 타입은 일반적인 int타입에 비해서 엄청나게 많은 자릿수의 숫자를 지정할 수 있는 변수 타입이라고 들었습니다.



그 다음에 PlayerData 클래스 위에다가 UserItem이라는 클래스를 생성하는데, 이 클래스는 MonoBehaviour를 상속하지 않는 형식으로 제작을 합니다.



다음으로는 DontDestroyOnLoad()라는 메서드를 지정해서 씬(Scene)가 바뀌어도 PlayerData 게임 오브젝트가 사라지지 않도록 합니다. 책에서 언급하기로는 씬이 바뀌면, 게임 오브젝트도 같이 사라진다고 합니다.



다음으로는 위 스크린샷과 같이 데이터를 추가하도록 합니다. 아직 제 수준에서는 이해가 잘 안가기는 하지만, 책에서 적어놓은 말에 의하면, 붉은색 박스안에 들어간 코딩은 언제 어디서나 PlayerData에 접근을 용이하게 만들기 위함이라고 합니다. 



위 스크린샷이 전체적인 PlayerData.cs의 코딩입니다. 이제 다시 TitlePlay.cs로 가서 먼저 아래와 같이 두줄의 코딩을 추가 하도록 합니다.



일단 여기서 들어간 형식이 다음과 같은 것이라고 생각이 됩니다.


클래스명.instance.클래스안의 항목


여기서 이러한 코딩을 하면, 클래스안의 항목클래스명에서 찾아서 써라는 의미가 된다고 생각을 합니다. 그리고 이어지는 


데이터 타입.Parse(클래스안의 항목)


여기서는 클래스안의 항목을 특정한 데이터 타입으로 바꾸라는 의미를 지니는 명령이 된다고 저는 생각합니다. 물론 이게 100% 맞는 것은 아닌데, 일단 살펴보니, 이러할 것으로 생각됩니다. 이 붉은색 박스안의 명령에 의해서 title화면이 뜨면 게임은 PlayerData에서 id와 name을 찾아서 써라는 의미가 됩니다.



다음은 이제 페이스북에서 친구의 데이터 정보를 가져와서 처리하는 작업에 들어가야 합니다. 일단 먼저 object로 friendsInfo라는 변수를 null이라고 선언하도록 합니다.



먼저 위의 코드는 페이스북에서 내 친구의 정보를 얻어오라는 명령이고, 만일 친구의 정보가 없다면, 0.1초 기다리라는 의미가 됩니다. 여기서는 FriendHandler와 FriendData를 코딩하지 않았기 때문에 붉은색 글씨로 표시가 되어서 에러라는 의미가 있을 것입니다.



먼저 FriendData()를 코딩하도록 합니다. 여기까지는 일단 책에서 있는 대로 코딩을 하는 대로 되었는데, 문제는 위 스크린샷에서 붉은색 밑줄을 친 곳에 있는 코드는 어떻게 해도 에러를 없앨 수 없었습니다.



다음은 FriendHandler의 내용을 MyHandler()의 내용을 참고해서 만든 것입니다. 에러가 발생했으면 에러라고 띄우도록 하고, 여기서는 Prime31의 기능을 이용해서 떴는 정보를 가져오라는 의미가 됩니다.



마지막으로 저 구문을 도저히 어떻게 할 수 없어서 주석처리를 하는 식으로 일단 놔두어야만 했습니다. 아무튼 이것으로 챕터6을 끝내고자 했는데 다 끝낼 수 없었습니다. 이 부분에 대한 해답을 얻기 전까지는 유니티5의 독학을...... 어떻게 이어가야 할지 한번 생각해 봐야 겠습니다.

반응형