전체 글 보기
참고 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..
참고 https://tonikat.tistory.com/10 https://lee-seokhyun.gitbook.io/workspace/client/easy-mathematics/gdc2012/3 만들어 본 이유 평소에도 리그오브레전드 게임의 챔피언, 카이사의 Q 스킬 '이케시아 폭우'를 쓸 때마다 토도도독 박히는 느낌이 좋았다. 그런 느낌은 못 냈지만, 비슷하게 구현한 게시글을 봐서 나도 내 방식대로 구현해보았다. 베지어 곡선에 대해 많이 공부하게 되었다. 핵심 코드 가장 핵심은 역시 베지어 곡선이다. 3차 베지어 곡선을 썼는데, 3차 베지어 곡선은 점 4개로 위치를 구하는 것이다. 방정식으로 정석으로 코딩하면 이렇게 되는데, 수포자인 나는 이해가 한번에 가지 않는다. /// /// 3차 베지어 곡선...
참고 옛날 게시글이긴 하지만, 쉐이더에 익숙해질 겸 만들어보았다. https://gamedevforever.com/326 원리 복잡한 수학은 아니고 약간의 수학을 얹었다고 설명해주시는데, 나한텐 이해하기 어려웠다...!! 순서대로 차근차근 이해해보자... 1. 최종적으로 알아야 할 값은 P' 위치이다. P' 위치 = P 위치 + (L 방향 * 선분 H 길이) 이다. P 위치는 World Position 노드로 알 수 있고, L 방향도 커스텀 노드로 알 수 있다. 2. H 길이를 구하려면......... 또 차근차근 이해해보자. 닮음비를 이용할 것이다. L:L.y = H:O H*L.y = O*L H = (O*L)/L.y L은 Normalize(빛 벡터)이기 때문에, 1이다. H = O/L.y 선분 O의 길..