unity59 게임 디자인 패턴 1. 명령 패턴 (Command Pattern) 실체화 (reify) 에 대해예제예제 1) 기본 형태의 명령 패턴예제2) 액터를 인자로 넘겨주기예제3) 실행 취소와 재실행 명령 패턴은 GoF에선 요청 자체를 캡슐화한 것이다 라고 표현한다.많이 와닿지 않는다. 게임 프로그래밍 패턴에서도 명령 패턴은 메서드 호출을 실체화한 것이다 라고 표현하는데, 이 역시 와닿지 않는다. 이는 우리가 실체화라는 단어에 대해 잘 알지 못하기 때문이다. 실체화 (reify) 에 대해 실체화라는 말은 몰라도 C#을 공부했었다면 콜백이라는 말은 알 것이다. 대리자나 이벤트가 콜백 함수를 구현하기 위한 문법이기 때문이다. 대리자나 이벤트를 사용하는 것을 보면, 마치 함수 자체를 데이터처럼 사용한다. 이 데이터처럼 사용한다는 것, 즉 객체화 되어 있다는 것이 실체화의 의미라고 보면.. 2023. 10. 23. Unity 포톤 동기화 작업 시 주의할 점들 플레이어블 캐릭터를 Instantiate할 때게임 로직 동기화 캠프에서 포톤을 이용한 팀 프로젝트가 점점 마무리되는 단계이다. 포톤으로 동기화를 하면서 플레이어 동기화 같은 것들이 어려울 줄 알았는데, 의외의 복병이 바로 게임 로직 동기화였다. 서버 (or 마스터 클라이언트) 에서 처리해야하는 함수와 개별 클라이언트에서 각각 처리해야하는 함수들의 구분이 필요했었는데, 초기 코드 작성 단계에서 그것을 제대로 고려하지 않은 점이 가장 큰 패착이었다. 프로젝트의 완성도가 아쉬운만큼 그 아쉬운 점에 대해 적어보려 한다. 플레이어블 캐릭터를 Instantiate할 때 private void StartGame() { int idx = PhotonNetwork.LocalPlayer.ActorNumber; if (id.. 2023. 10. 19. Unity 기존 게임을 포톤 PUN2로 동기화하기 MonobehaviourPun vs MonobehaviourPunCallbacks로컬 vs 리모트변수 동기화: IPunObservable함수 동기화: PunRPC 포톤으로 기존 싱글플레이 게임들을 멀티플레이 게임으로 만들어보자. 물론 기존에 만들어놨던 게임 구조가 너무나도 복잡하면…. 좀 힘들 수 있다. 주로 상속받는 부분 변경과 함수 변경에 대해 이야기해보고자 한다. MonobehaviourPun vs MonobehaviourPunCallbacks 일단 제일 먼저 하게되는 일은 Monobehaviour를 상속받고 있던 기존의 스크립트를 MonobehaviourPun이나 MonobehaviourPunCallbacks를 상속받는 걸로 바꿔주면서 시작한다. 둘의 차이는 뭐냐 하면, 오버라이드를 하는지 안하는.. 2023. 10. 18. Unity 포톤으로 멀티플레이 구현해보기 로비 씬 만들기게임 씬 동기화빌드해서 테스트해보기 이번 글에서는 포톤을 이용하여 멀티플레이를 구현하는 방법을 정리해보도록 하겠다. 베이스라인이 되는 게임은 다음의 간단한 탁구게임을 이용하였다. Pong 게임 https://github.com/seoksii/Pong 포톤을 프로젝트에 Import하는 등의 설정은 다음의 게시글을 참고하자. 유니티 포톤 (Photon) 셋업하기포톤 Import 하기어플리케이션 아이디 가져오기 포톤 Import 하기 포톤은 기본적으로 Package Manager에서 제공해주는 것이 아니라 애셋스토어에서 Import를 해야한다. PUN 2 - FREEGet the PUN 2 - FREE package from Photon Engine and speed up your game de.. 2023. 10. 17. Unity2D 사이드뷰 게임의 좋은 움직임 만들기 기본적인 달리기 테크닉매력적인 점프 구현하기1) 코요테 타임 (Coyote Time)2) 점프 버퍼 (Jump buffer)3) 그 외 잡다참고) 예제 코드 개선 게임을 만들다보면 사람들이 많이 놓치는 것 중에 하나가 바로 조작감이다. 좋은 게임 경험을 만들기 위해 필수적인 것으로 높은 난이도의 사이드뷰 게임일수록 중요도가 높아지는 부분이다. 플랫포머 장르에서 조작감으로 유독 언급이 많이되는 게임이 두 개가 있는데, 셀레스테 (Celeste), 할로우 나이트 (Hollow Knight)이다. 셀레스테 (Celeste) 할로우 나이트 (Hollow Knight) 이 글에서는 두 게임을 비롯하여 사이드뷰 시점 게임에서 조작감을 어떻게 올리는 지 그 테크닉에 대해 다뤄보도록 하겠다. Reference : Da.. 2023. 10. 16. 유니티 포톤 (Photon) 셋업하기 포톤 Import 하기어플리케이션 아이디 가져오기 포톤 Import 하기 포톤은 기본적으로 Package Manager에서 제공해주는 것이 아니라 애셋스토어에서 Import를 해야한다. PUN 2 - FREEGet the PUN 2 - FREE package from Photon Engine and speed up your game development process. Find this & other Network options on the Unity Asset Store.https://assetstore.unity.com/packages/tools/network/pun-2-free-119922 먼저 해당 링크에서 포톤을 내 프로젝트에 추가하자. 어플리케이션 아이디 가져오기 포톤을 Import하면 다음과.. 2023. 10. 12. Unity 포톤 (Photon) 포톤 기본 기능PhotonNetwork1) ConnectUsingSettings()2) CreateRoom() & JoinRoom()3) Instatiate()MonoBehaviourPunCallbacks1) OnConnectedToMaster()2) OnJoinedRoom() & OnPlayerEnteredRoom()포톤뷰 (PhotonView) 컴포넌트PhotonViewObserved Component 추가 PhotonView1) PhotonTransformView2) PhotonAnimatorView3) PhotonRigidbodyView 포톤 (Photon) 은 멀티플레이를 구현하는 솔루션 중 가장 유명한 네트워크 엔진 중 하나이다. 여러 엔진에 적용 가능하고, 크로스플랫폼 간 통신도 지원하는 등.. 2023. 10. 11. Unity3D FSM으로 플레이어 캐릭터 조작 구현하기 (3) 기존 코드 수정Walk, Run 상태 추가 저번 게시글까지 FSM으로 플레이어 캐릭터 조작을 구현하기 위한 기본 State 클래스를 구성하는 부분까지는 완성을 했었다. Unity3D FSM으로 플레이어 캐릭터 조작 구현하기 (2)State Machine 만들기땅에 붙어 있을 때 상태 구현하기PlayerSO 만들기Player 오브젝트 설정Animator 설정 저번 글에서는 Input Action을 스크립트로 접근하는 법과 Player Animation을 FSM으로 구현하기 위한 기본 세팅을 마쳤었다. Unity3D FSM으로 플레이어 캐릭터 조작 구현하기 (1)프로젝트 세팅Input System으로 기본적인 이동 구현하기Input Actions와 오브젝트 연결하기플레이어에 애니메이션을 받도록 하는 스크립트.. 2023. 10. 10. Unity3D FSM으로 플레이어 캐릭터 조작 구현하기 (2) State Machine 만들기땅에 붙어 있을 때 상태 구현하기PlayerSO 만들기Player 오브젝트 설정Animator 설정 저번 글에서는 Input Action을 스크립트로 접근하는 법과 Player Animation을 FSM으로 구현하기 위한 기본 세팅을 마쳤었다. Unity3D FSM으로 플레이어 캐릭터 조작 구현하기 (1)프로젝트 세팅Input System으로 기본적인 이동 구현하기Input Actions와 오브젝트 연결하기플레이어에 애니메이션을 받도록 하는 스크립트 작성FSM 구성하기플레이어에 대한 상태 정보 구현하기 플레이어 이동 구현 방식에는 여러 가지가 있지만, 구현해야 하는 이동 상황이 많아지면 주로 사용하는 것이 바로 FSM(Finite State Machine)이다. FSM은 상.. 2023. 10. 6. Unity3D FSM으로 플레이어 캐릭터 조작 구현하기 (1) 프로젝트 세팅Input System으로 기본적인 이동 구현하기Input Actions와 오브젝트 연결하기플레이어에 애니메이션을 받도록 하는 스크립트 작성FSM 구성하기플레이어에 대한 상태 정보 구현하기 플레이어 이동 구현 방식에는 여러 가지가 있지만, 구현해야 하는 이동 상황이 많아지면 주로 사용하는 것이 바로 FSM(Finite State Machine)이다. FSM은 상태 패턴을 구현하는 방법 중 하나로 자세한 내용은 나중에 게시글로 따로 다루도록 하겠다. 이번 글에서는 FSM을 이용하여 플레이어 이동 구현하는 방식을 정리해보고자 한다. 프로젝트 세팅 사용된 애셋은 다음과 같다.ProjectAssets.unitypackage 프로젝트 패키지는 Input System을 사용할 것이기 때문에 Packag.. 2023. 10. 5. 이전 1 2 3 4 5 6 다음