배운 것들

JSON

class → json

obj를 인자로 받아 string을 반환한다.

float이 부동소수점이 찍혀 나오는데 다시 변환하여 사용할 때는 상관이 없다.

class → json → class

j를 인자로 하고 제너릭 형식으로 T를 반환한다.

Save

수정하면 적용되긴 하는데 오브젝트에 붙어있는 public변수라 인스펙터에서 수정해줘야된다.

Load

벡터 3의 순환참조 문제 - normalized에서 normalized를 부를 수 있는 문제 때문에 오류가 발생한다.

- gameObject.gameObject → 순환 참조 문제

* 그래서 이 블로그에선 따로 Vector3의 좌표를 저장할 클래스를 만들어줘서 사용하면 된다고 한다.

https://wergia.tistory.com/m/332

 

[Unity] JSON

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 베르의 게임 개발 유튜브 안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올

wergia.tistory.com

Save에서(Wirte) FileMode가 Open이나 OpenOrCreate 상태이고

Json 내부 변수 값의 길이가 변경됐을 때 json 파일 내부에서 이전 값이 남아있는 경우가 생긴다.

이는 FileMode를 Create로 바꾸면 해결 된다.

 

Mirror

빈 오브젝트에 Network Manager와 NetworkManagerHUD를 추가한다.

HUD

Client Authority : 클라이언트 정보 옮기기

이후 Player를 프리펩화 하고

이후 NetworkManager에 Player 프리펩을 넣는다.

Network Identity

  • Server Only : 서버에만 생성됨

Network Transform : 위치 동기화

  • Client Authority : 클라이언트로부터 정보가 와서 움직인다면 true 해야됨(NPC는 false)
  • Send Rate : 프레임

  • Host(Server + Client) : Server겸 Client라 방도 생성하고 큐브도 생성됨
  • Client : 큐브만 생성됨
  • Server Only : 방만 생성함

* 한 컴퓨터에서 여러 개의 서버를 생성하려고 하면 오류가 뜬다.

 

포톤

https://www.photonengine.com/ko-KR/

 

글로벌 크로스 플랫폼 실시간 게임 개발 | Photon Engine

 

www.photonengine.com

Photon View : Network Identity와 비슷한 역할

RPC로 부르고 싶은 함수들을 호출할 때 PunRPC 속성을 붙여준다.

 

 

한 주 후기

 이번 주에는 데이터관리 할 때 쓰는 json과 멀티 플레이를 위한 서버인 Mirror, 포톤에 대해서 배웠다.

 json은 딕셔너리처럼 key와 value값이 있어 데이터를 편하게 관리가 가능하고 JsonUtility로 유니티와 json 파일간의 변환이 가능하다. 파싱 하는 부분만 잘 이해하면 사용하기 어렵지 않은 것 같았다. Mirror는 GUI가 잘 구성되어있어 그냥 버튼 하나로도 호스트 생성이 가능해서 신기했다. 접근성면에서 좋았던 것 같다. 포톤은 해보면서 AppID1001오류와 이해하기 RPC 등 이해하기 어려운 부분들이 좀 많아서 따로 공부해야겠다는 생각이 들었다. 포톤 코리아나 포톤 튜토리얼을 보면서 공부해서 이번에 확실히 이해하고 넘어가야겠다는 생각이 들었다.

 이번 주 내용이 데이터 관리와 서버라서 확실히 이해하는 게 쉽지 않았다. 포톤 튜토리얼이 한글화도 잘 되어있고 단계별로 구성이 잘 되어있어서 틈틈히 공부해봐야겠다는 생각이 들었다. 다음 주에는 포톤을 이용한 어몽어스 같은 마피아 게임을 만들기로 했는데 재밌을 것 같다. 다음 주도 파이팅!

 

 

유데미코리아 바로가기

본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.

+ Recent posts