#Unity[PhotonPun2] PhotonView, RPC
·
Unity
1. Photon View 포톤으로 네트워크 게임을 제작할 경우 사용자 뿐만 아니라 해당 네트워크에 접속해 있는 다른 플레이어들도 존재합니다. 아무런 세팅을 하지 않았을 경우 플레이어 A가 움직여도, 플레이어 B 입장에서는 플레이어가 A가 움직이지 않습니다. 그 이유는 하나의 게임파일을 같이 사용하는 것이 아니라, 플레이어 A와 B는 둘다 별도의 게임 파일을 가지고 있기 때문입니다. 따라서 A에 변화를 감지해서 B에게도 적용해줄 수 있는 장치가 필요합니다. - 플레이어 움직임 동기화 플레이어의 위치를 동기화 하기 위해서는 반드시 Palyer 오브젝트에 Photon View 컴포넌트가 존재해야합니다. Photon View는 변화를 감지하여 서버에 존재하는 플레이어들에게도 똑같이 적용하는 역할을 합니다. 위..
Unity Animator Controller 변경, RectTransform
·
Unity
1. Animator Controller 변경하는 방법 유니티를 하다보면 Player 오브젝트는 그대로 냅둔 상태에서, Animator 컴포넌트의 Controller만 변경하여 플레이어를 변경하고 싶을 때가 있습니다. 이경우 RuntimeAnimatorContoller의 배열을 만든 뒤 인스펙터 창에서 Animator Controller들을 인덱스 값으로 할당해준 뒤에 원할때 Animator.runtimeAnimatorController를 할당 시킨 인덱스에 존재하는 Animator Controller로 변경해주면 쉽게 플레이어의 애니메이션을 변경 할 수 있습니다. 2. RectTransform 유니티를 하다보면 게임오브젝트의 자식 오브젝트로 Canvas를 넣어서 Text를 표현하는 경우가 생기기도 합니..
Unity Photon 주요 기능들
·
Unity
이번 포스팅은 Photon을 사용하면서 알게된 메서드와 멤버 변수들의 쓰임새를 간략하게 남겨보겠습니다. 세팅 환경은 Photon Pun2를 이용했습니다. 1. Photon 사용하기 에셋스토어에서 Photon Pun2를 받고 네트워크 게임을 만들경우, NetWorkManager 오브젝트를 생성하고, NetworkManager 스크립트를 할당해주는 것이 일반적 입니다. Photon Pun2의 기능을 사용하기 위해선 반드시 Photon.Pun, Photon.Realtime의 NameSpace를 사용해줘야합니다. 이후 MonoBehaviourPunCallbacks를 상속받아야지만, 포톤의 NetWork 기능들을 사용할 수 있습니다. 2. 네트워크 세팅 Puncallbaks를 상속 받았다면, Awak()에 해당 ..
2024_01_17 TIL
·
TIL
1.오늘 배운 것 using System.Collections; using System.Collections.Generic; using Photon.Pun; using Photon.Realtime; using UnityEngine; using UnityEngine.UI; public class NetworkManager : MonoBehaviourPunCallbacks { public InputField NickNameInput; public GameObject DisconnectPanel; public GameObject RespawnPanel; private void Awake() { Screen.SetResolution(960, 540, false); PhotonNetwork.SendRate = 6..
2024_01_16 TIL
·
TIL
1. 오늘 배운 것 비주얼 스튜디오에서 Alt키를 누른상태로 윗방향키와 아랫방향키를 움직이면, 해당 줄을 위나 아래로 옮길 수 있습니다. 또한 Alt키를 누른상태로 드래그하면 해당 영역만 수정이 가능합니다. 2. 느낀 점 오늘로 TextRPG 팀과제가 마무리 되었습니다. Unity를 사용하지 않고 C# 콘솔환경에서 개발을 하는 과제였기 때문에 미숙한 점도 많았고 부족한 점도 많았지만, 좋은 팀원분들을 만나서 쉽게 해결 했던 것 같습니다. 유니티를 사용하지 않고 오직 코딩으로 구현하는 과제였기 때문에 필요한 기능이 있으면 하나하나 직접 만들어서 사용을 해야하는 구조였기 때문에, 유니티를 사용했을 때 보다 좀 더 Class나 객체를 만드는 숙련도를 키워 볼 수 있었던 것 같습니다. 앞으로 있을 유니티 2D,..
Unity Photon Pun2 연결하는 방법
·
Unity/2D
1. 포톤 연결하는 방법 https://www.photonengine.com/ 1. 포톤 홈페이지에서 로그인 후 새 애플리케이션을 생성을 누른 뒤 Photon 종류를 Pun으로 설정합니다. 2. 이렇게해서 생성된 애플리케이션의 App ID를 복사 합니다. 3. 에셋스토어에서 PUN 2 - FREE를 다운로드 한뒤에 프로젝트에 Import를 합니다. 4. Import를 완료하면 해당 위자드가 뜨는데 이 위자드에 아까 저장해둔 App ID를 붙여넣기하면 연결이 완료됩니다.
Unity 애니메이션 역재생, 전처리기
·
Unity
1. 애니메이션 역재생하는 법 Animator에 연결된 애니메이션의 speed값을 -값, 즉 음수 값으로 지정하면 해당 애니메이션을 역으로 재생할 수 있습니다. 2. 전처리기 유니티에서는 전처리기 지시어를 통해 해당 코드를 컴파일 할 것인지 선택할 수 있습니다. 해당하는 코드가 아닐 경우 자동으로 주석처리되어 컴파일 합니다. #if Unity_EDITOR의 뜻은 유니티 에디터가 실행중이라는 뜻으로 에디터가 실행 중이면 에디터 실행을 종료하겠다는 의미입니다. 여기서 #else는 유니티 에디터가 아닌 다른 경우에 해당하기 때문에 모바일이나 PC 플랫폼으로 해당 프로그램을 실행시 Application.Quit() 즉, 어플리케이션을 종료하는 동작이 실행되게 됩니다. 이처럼 전처리기를 잘 사용하면 플랫폼 대응을..
2024_01_12 TIL
·
TIL
1. 오늘 배운 내용 C#에서는 Console.Clear라는 함수로 콘솔 창에 있는 텍스트들을 지울 수 있는데. 이 Console.Clear라는 함수는 사용자의 콘솔 화면을 기준으로 지우는 것이기 때문에 콘솔 화면을 벗어난 Text까지는 지울 수 없습니다. 이와 마찬가지로 Console.SetCursorPostion 또한 콘솔 화면을 기준으로 좌표를 설정하기 때문에 (0,0)으로 커서 포지션을 설정해도 콘솔 화면 기준으로 커서 위치가 이동 될뿐, 실제 콘솔 범위를 벗어난 부분까지 이동되지는 않습니다.. 이를 잘 유의해서 사용해야할 것 같네요, 콘솔 화면 밖에있는 글자나 Text를 지우기 위해 수동으로 콘솔창을 늘리는 것 외에 방법이 있을지.. 궁금하네요 지금은 팀원으로써 맡은 일이 있기때문에 해결은 못하..