반응형 전체 글552 Unity - NavMeshAgent NavMeshAgent NavMesh위에서 경로를 계산하고 이동하는데 사용된다. NavMesh는 이동가능한 경로를 나타내며 NavMeshAgent는 이 경로를 이동할 수 있도록 도와준다. 프로퍼티 01 destination NavMeshAgent가 이동하려는 목적지 위치 (SetDestination()를 사용하여 목적지를 설정하거나 GetDestination()을 사용하여 현재 설정된 목적지를 가져올 수 있다.) public Vector3 destination; 02 speed NavMeshAgent의 이동속도를 설정하거나 가져올 수 있다. public float speed; 03 angularSpeed NavMeshAgent의 회전속도를 설정하거나 가져올 수 있다. public float angular.. 2023. 8. 2. Unity - SerializationException: Type 'UnityEngine.MonoBehaviour' in Assembly 'UnityEngine.CoreModule 에러 고치는 법 SerializationException: Type 'UnityEngine.MonoBehaviour' in Assembly 'UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable. 오류를 해결해보자 해결 방법 [System.Serializable] public class Example : MonoBehaviour [System.Serializable] 설정한 클래스에 MonoBehaviour가 존재하는지 체크하면된다. 아래와 같이 수정해주면 오류가 해결된다. [System.Serializable] public class Example 2023. 8. 2. 네트워크 프로그래밍 - PacketSession 패킷작업을 위해서 뭐가 필요할까기존 세션 코드에 기능을 추가해서 패킷이 들어가므로 수정이 필요하다.패킷은 네트워크를 통해 전송되는 데이터의 단위이며 TCP와 같은 전송 프로토콜은 데이터를 일정 크기의 블록인 패킷을 분할하여 전송한다.TCP의 경우 패킷이 완전체로 오지 않은 경우가 있으므로 완전체인지 아닌지 구분하는 작업이 필요하다. 패킷 통신을 위한 구조와 처리 과정01 Packet 클래스 설정size는 패킷의 크기, packetid는 이를 통해 번호에 따라서 패킷을 구분할 수 있다.class Packet{ public int size; public int packetId;}02 LoginOfPacketLoginOfPacket에는 캐릭터의 정보들을 리스트로 보내준다는 가정하에 이는 크기가 유동.. 2023. 7. 31. 네트워크프로그래밍 - SendBuffer 개선하기 RecvBuffer 알아보러 가기 네트워크프로그래밍 - RecvBuffer 개선하기원래 코드 SocketAsyncEventArgs _recvArgs = new SocketAsyncEventArgs(); public void Start(Socket socket) { _recvArgs.SetBuffer(new byte[1024],0,1024); RegisterRecv(); } setBuffer를 한 다음 어떤 변화도 주지 않았다. 그러므로 _socket.Rececode-piggy.tistory.compublic abstract class Session{ RecvBuffer _recvBuffer = new RecvBuffer(1024);}RecvBuffer같은 경우 클라이언트 또는 서버가 메시지를 수신하.. 2023. 7. 22. Unity - NPC클릭하면 플레이어 쳐다보게 하는 법 NPC 클릭하면 플레이어 쳐다보게 하는 법 01 변수 설정 public Transform player; private Camera mainCamera; private Quaternion originalRotation; 02 메인카메라와 NPC의 초기 회전값 설정 void Start() { mainCamera = Camera.main; originalRotation = transform.rotation; } 03 마우스 왼쪽 버튼이 클릭 되었을때 Raycast를 통해 오브젝트 판별 void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Ray.. 2023. 7. 21. 네트워크프로그래밍 - RecvBuffer 개선하기 원래 코드SocketAsyncEventArgs _recvArgs = new SocketAsyncEventArgs();public void Start(Socket socket){ _recvArgs.SetBuffer(new byte[1024],0,1024); RegisterRecv();}setBuffer를 한 다음 어떤 변화도 주지 않았다.그러므로 _socket.ReceiveAsync(_recvArgs)에서 우리가 건네주는 버퍼는 위의 Setbuffer이다.void RegisterRecv(){ bool pending = _socket.ReceiveAsync(_recvArgs);}TCP우리가 저번에 TCP에대해 알아보았는데 클라이언트 쪽에서 100바이트를 보낸다고 가정한다면 무조건 100바.. 2023. 7. 19. 이전 1 ··· 54 55 56 57 58 59 60 ··· 92 다음 반응형