Unity Fishnet[4] RPC
·
유니티/Tutorial
Unity 6000.0.51f 환경에서 진행했고 멀티를 테스트할 수 있는 에셋은 ParrelSync를 사용했습니다.RPCRPC(Remote Procedure Call)는 서로 물리적으로 떨어져 있는 두 컴퓨터가 있을 때 한 컴퓨터가 다른 컴퓨터의 프로시저를 호출하는 기능을 말합니다. 모든 RPC는 NetworkBehaivour를 상속받아야 사용할 수 있습니다. ServerRpcServerRpc는 클라이언트가 서버의 함수를 실행시키기 위한 속성입니다.클라이언트가 ServerRpc 속성이 붙어 있는 함수를 실행시키면 서버에 ServerRpc 속성이 붙어 있는 이 함수를 실행하라고 요청합니다.그러면 서버는 요청을 받고 해당 함수를 실행하게 됩니다. 간단한 예시를 통해 어떤 결과가 나오는 지 직접 확인해 보겠습..
Unity Fishnet[3] Observer
·
유니티/Tutorial
Unity 6000.0.51f 환경에서 진행했고 멀티를 테스트할 수 있는 에셋은 ParrelSync를 사용했습니다.ObserverObserver는 특정 조건 (오브젝트 거리, 같은 씬에 있는지, owner 인지 등)에 만족해야 네트워크 오브젝트들이 보이면서 네트워크 기능을 이용할 수 있게 해주는 기능입니다.이걸 사용하는 이유는 최적화 때문인데 예를 들어 내 화면에 없는 네트워크 오브젝트는 보여줄 필요가 없으니 삭제하고 내 화면에 들어왔을 때 다시 소환하는 방식으로 최적화가 이루어집니다.저는 LOD와 비슷하다는 느낌을 받은 기능입니다. Observer 미리보기먼저 특정 조건 (오브젝트 거리, 같은 씬에 있는지, owner 인지 등)을 활용해서 Observer가 뭔지 직접 확인해 보겠습니다.위 영상은 Ob..
Unity Fishnet[2] Ownership과 Player Move
·
유니티/Tutorial
Unity Fishnet[1] 네트워크 연결 및 플레이어 스폰Unity Fishnet[0] 소개 및 설치에셋스토어 FishNet: Networking Evolved | 네트워크 | Unity Asset StoreGet the FishNet: Networking Evolved package from FirstGearGames and speed up your game development process. Find this & other 네트워크 optiogamecoke.tistory.com저번 강의에 이어서 계속됩니다.Unity 6000.0.51f 환경에서 진행했고 멀티를 테스트할 수 있는 에셋은 ParrelSync를 사용했습니다.Player Move멀티에서 자신의 플레이어를 움직이려면 2가지 과정이 필요합..
Unity Fishnet[1] 네트워크 연결 및 플레이어 스폰
·
유니티/Tutorial
Unity Fishnet[0] 소개 및 설치에셋스토어 FishNet: Networking Evolved | 네트워크 | Unity Asset StoreGet the FishNet: Networking Evolved package from FirstGearGames and speed up your game development process. Find this & other 네트워크 options on the Unity Asset Store.assetsgamecoke.tistory.com 저번 강의에 이어서 계속됩니다.Unity 6000.0.51f 환경에서 진행했고 멀티를 테스트할 수 있는 에셋은 ParrelSync를 사용했습니다.NetworkManager서버를 열고 클라이언트를 연결하려면 우선 Netwo..
Unity Fishnet[0] 소개 및 설치
·
유니티/Tutorial
에셋스토어 FishNet: Networking Evolved | 네트워크 | Unity Asset StoreGet the FishNet: Networking Evolved package from FirstGearGames and speed up your game development process. Find this & other 네트워크 options on the Unity Asset Store.assetstore.unity.com Github GitHub - FirstGearGames/FishNet: FishNet: Unity Networking Evolved.FishNet: Unity Networking Evolved. . Contribute to FirstGearGames/FishNet devel..
윈도우 사용 중인 Port 확인 및 프로세스 종료
·
컴퓨터/Window Error
사용 환경 : Window 11모든 포트 확인netstat -ano -a : All-n : 아이피:포트 형식으로 출력-o : PID 포함 출력특정 포트 확인netstat -ano | findstr 포트참고로 findstr는 특정 문자열을 찾는 명령어로 LISTENING, ESTABLISHED, TCP 등 netstat -ano 했을 때 나오는 문자열을 검색할 수 있습니다.프로세스를 종료시키기 위해선 오른쪽 PID를 알아야 합니다. Kill PIDtaskkill /f /pid PID번호/f : 강제로 종료/pid : pid 번호를 이용해서 프로세스 종료 저 같은 경우엔 유니티 멀티 게임에서 서버를 열고 닫았는데도 port가 열려있어서 해당 방법을 사용했습니다.근데 특정 프로그램에서 port 충돌이 날 경우..
Unity Isometric Chunk System
·
유니티/Script
Isometric Tilemap 에서 사용할 수 있는 청크 시스템입니다.카메라의 거리에 따라 청크가 로드되고 언로드 되는 기능이 있습니다.이 글은 Cell Layout을 Isometric Z as Y로 진행했습니다.WorldManagerpublic class WorldManager : MonoBehaviour{ [SerializeField] private Grid grid; [SerializeField] private Tilemap tilemap; [SerializeField] private TileBase baseTile; /// /// 개별 타일 생성 /// /// public void GenerateTile(Vector3..
Unity 디자인 패턴 Command
·
유니티/Tutorial
커맨드 (Command) 패턴은 키 입력이나 마우스 입력과 같이 어떤 요청을 객체로 만들어 캡슐화시키는 패턴을 말합니다. 단순 요청만 전달하는 게 아니라 요청 자체를 객체로 만들어서 전달한다는 게 커맨드 패턴의 핵심입니다.객체로 만들면 요청을 실시간으로 전달할 필요가 없어지고 요청 자체를 기록할 수 있게 됩니다. CPU에서 GPU로 데이터를 넘겨주는 Command Buffer도 커맨드 패턴을 사용하는 걸로 알고 있고게임에서는 주로 AI 행동, 입력 시스템, Undo/Redo 같은 기능에서 사용합니다. 구현 저는 플레이어 Move를 예로 구현해 봤습니다. ICommandpublic interface ICommand{ void Execute(); void Undo();} 우선 상속할 인터페이스를 ..
Unity MCP
·
유니티/Tip
가끔 유니티를 하다 보면 'AI가 Capsule을 생성해서 거기에 Character Controller를 넣어주면 좋겠는데'와 같이채팅만 치면 유니티 시스템을 이용해서 알아서 만들어주면 좋겠다는 생각이 든 적이 있습니다. 그런데 최근 이 생각이 점점 현실로 되어 가고 있는 거 같습니다.아직 초기 이긴 하지만요. MCP (Model Context Protocol)은 LLM을 통해 외부 리소스와 상호작용을 할 수 있는 개방형 프로토콜이라고 합니다.유니티에선 그냥 AI 채팅을 통해 유니티 내 기능들을 사용하는 거라고 생각하시면 됩니다. 근데 말했듯이 초기 단계라서 진짜 기본적인 것들만 가능하고 안 되는 것도 많습니다.설치 준비물Node.js 18 이상 Node.js — Node.js® 다운로드Unity 202..
Unity 디자인 패턴 Observer
·
유니티/Tutorial
옵저버 (Observer) 패턴은 Subject (주체)에 의해 모든 Observer (관찰자) 에게 알림을 보내는 디자인 패턴입니다.우리가 자주 보는 유튜브에서도 유튜버와 그 유튜버를 구독한 사람과의 관계에서도 옵저버 패턴의 예를 찾아볼 수 있습니다.구독자가 유튜버의 알림을 받는다면 유튜버가 영상 올릴 때 알림을 받는 모든 구독자에게 알림이 전달됩니다.여기서 유튜버는 Subject, 구독자는 Observer라고 볼 수 있습니다. Subject (주체) 는 모든 Observer에게 알림을 전달합니다.Observer (관찰자) 는 Subject 가 보낸 알림을 수신합니다. 구현 위 예시를 기반으로 코드를 짜보겠습니다. Subscriber (Observer)public interface IObserver{ ..