참고 https://www.youtube.com/watch?v=f2pTkW-1JkE&list=PLa1F2ddGya_-UvuAqHAksYnB0qL9yWDO6&index=34 리깅 캐릭터를 일단 준비한다. 블렌더 공식 튜토리얼에서 제공해준다. 작업을 쉽게 하기 위해 Wireframe으로 한번씩 바꾸게 된다. 오른쪽 위에 저걸 누르거나, Z키 눌러서 바꿀 수 있다. 리깅을 하나하나 심을 수도 있지만, 캐릭터의 경우에는 프리셋이 존재한다. Edit -> Preferences의 Add-ons에서 Rigify를 체크해주어야 프리셋을 사용할 수 있다. 캐릭터의 골격이 나온다. 크기 조절을 해준다. 크기를 조절할 때, 중점이 발 끝이어야 하기 때문에, 3D Cursor로 바꿔야 한다. 3D Cursor 위치가 이상하다..
목표 몬스터의 체력 동기화를 해볼 것이다. 예제들을 살펴보니, 체력 같은 경우는 보통 PunRPC보다 OnPhotonSerializeView에서 동기화해주는 것 같다. 이번에는 PunRPC를 써보기 위해, PunRPC를 사용해서 동기화를 해볼 것이다. 동기화하는 법 종류는 여기 정리했다. 2021.09.28 - [Unity/포톤] - [포톤] 동기화하는 법 몬스터 체력 동기화하기 일단 순서대로 차근차근 해본다. 1. 동기화할 변수를 만든다. public float Health = 1f; 2. 맞았을 때의 함수를 구현한다. TakeHit함수는 따로 인터페이스로 뺏다. 인터페이스에서 TakeHitRPC도 선언해야하나 싶었는데, 음... 뭐가 더 좋을지는 잘 모르겠다. using UnityEngine; pub..
참고 https://doc.photonengine.com/ko-kr/pun/current/gameplay/synchronization-and-state 필터링하기 CustomPropertes를 사용하면 된다. 되게 간단하다. 1. CreateRoom(설정 값 A) 방을 생성할 때, 필터링하고 싶은 설정 값을 RoomOption 변수의 CustomProperties에 대입한다. // UI에서 값 얻어오기. byte maxPlayers = byte.Parse(m_dropdown_RoomMaxPlayers.options[m_dropdown_RoomMaxPlayers.value].text); // 드롭다운에서 값 얻어오기. byte maxTime = byte.Parse(m_dropdown_MaxTime.opti..
이전 글에서 포톤 튜토리얼을 따라하면서, PhotonView 컴포넌트에 등록해서 동기화하는 방식만 익혔다. 더 알아보니 이렇게 동기화하는 방식말고도 여러가지가 존재했다. 참고 https://doc.photonengine.com/ko-kr/pun/current/gameplay/synchronization-and-state https://www.youtube.com/watch?v=8zJRxOU4aCc 갱신이 많이 발생하는 경우 PhotonView 컴포넌트를 사용하기. 예) 위치 이동이나 상태 변경 등등. 1. Transform(위치,회전,크기) 동기화하기. PhotonView 컴포넌트에 Photon Transform View 컴포넌트 등록하기. 최신 버전의 Photon은 Photon Transform Vie..
참고 https://www.youtube.com/watch?v=VprqsEsFb5w 위 영상에서는 Package Manager에서 Device Simulator를 다운받았지만, 내가 쓰고 있는 Unity 2021.1.17f1 버전에서는 이미 기본적으로 탑재되어있다. 대응하기 1. Canvas 밑에 빈 오브젝트를 만들고, 해상도에 영향을 받지 않도록 Anchor Preset을 Stretch Stretch로 바꾼다. 2. 빈 오브젝트에 밑의 스크립트를 적용한다. using UnityEngine; public class SafeArea : MonoBehaviour { RectTransform _rectTransform; Rect _safeArea; Vector2 _minAnchor; Vector2 _maxAn..
포톤 튜토리얼 따라해보니 https://doc.photonengine.com/ko-kr/pun/current/demos-and-tutorials/pun-basics-tutorial/lobby 음.. 포톤 사이트에 있는 튜토리얼을 다 따라해보았는데, 게임 플로우에 필요한 기능이 쉽고 간단하게 정리되어있다. 그래서 이해하기에는 불편함이 없었고, 대충 개념은 다 이해가 되었다. 내가 느끼기에는 결국에는 플레이어 간의 동기화가 가장 핵심이다. 1. 누가 들어오거나 나갔을 때, 콜백 함수를 받아서 자연스럽게 처리하기. 밑에 콜백 함수만 따로 정리했다. 2. 오브젝트 생성 동기화하기. Photon을 이용해 오브젝트를 생성할 경우, 동기화가 된다. 주의할 것은 프리팹의 name으로 찾기 때문에, Resources 폴..
글로 정리하면서 공부하다보니, 공부하는 시간보다 정확한 내용을 알아보고 정리하는 시간이 더 많아진다. 정확한 내용을 알아보는 것은 좋지만, 큰 틀의 공부도 안했는데 세세한 것에 잡다한 시간을 쓰는 느낌?이 든다. 포톤 관련 게시글은 정말 간단하게 써야겠다. 참고 https://doc.photonengine.com/ko-kr/pun/current/getting-started/initial-setup https://www.youtube.com/watch?v=mPCNTi3Booo&list=PL3KKSXoBRRW3YE4UMnRH762vOhSHLdnpK 연동하기 유니티에서 패키지 임포트하기. 임포트하면, Pun Wizard 창이 뜬다. 창을 모르고 지웠으면, Window -> Photon Unity Network..