}
진우의 혼잣말하는 블로그
close
프로필 배경
프로필 로고

진우의 혼잣말하는 블로그

  • 분류 전체보기 (612) N
    • Unity (436) N
      • Study (216) N
      • VR (71)
      • AR (6)
      • Assets (39)
      • Fusion2 (8)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (8)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (20)
    • 나만의 꿀팁 (36)
    • Git 사용방법 (16)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (7)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
  • 홈
  • 태그
  • 방명록
유니티 NetworkBehaviour 호출주기

유니티 NetworkBehaviour 호출주기

Spawn NetworkBehaviour를 상속받는 오브젝트의 경우 위와 같이 2개의 분기로 나뉘며 호출 주기도 다르므로 주의해야합니다. DeSpawn NetworkBehaviour.OnNetworkDespawn은 NetworkBehaviour.OnDestroy보다 먼저 호출됩니다.

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 8. 9.
  • textsms
Unity Netcode for GameObjects, 특정 클라이언트에게만 RPC 보내기

Unity Netcode for GameObjects, 특정 클라이언트에게만 RPC 보내기

특정 클라이언트에게 데이터 전송하기 기본적으로 Netcode에서 제공하는 ClientRpc는 모든 클라이언트에게 데이터를 전송하는 방식입니다. 하지만 경우에 따라서는 '특정' 클라이언트에게만 데이터를 전송해야 할 때가 있습니다. 이럴 때 사용할 수 있는 것이 바로 ClientRpcSendParameters입니다! 아래는 ClientRpcSendParameters를 이용하여 특정 클라이언트에게만 데이터를 전송하는 예제 코드입니다. private void DoSomethingServerSide(int clientId) { if (!IsServer) return; // 주의! 미리 알고 있는 ClientId 리스트가 있고, 변경이 필요 없는 경우, // 이 함수를 실행할 때마다 메모리 할당을 피하기 위해 이를..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 7. 10.
  • textsms
Unity NGO 개발시 도움되는 Utilities 스크립트

Unity NGO 개발시 도움되는 Utilities 스크립트

Git 링크 https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git?path=/Packages/com.unity.multiplayer.samples.coop#main GitHub - Unity-Technologies/com.unity.multiplayer.samples.coop: A small-scale cooperative game sample built on the new, Unity ne A small-scale cooperative game sample built on the new, Unity networking framework to teach developers about creating a similar mu..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 5. 19.
  • textsms
Unity Netcode for GameObeject Client Network Transform

Unity Netcode for GameObeject Client Network Transform

https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git?path=/Packages/com.unity.multiplayer.samples.coop#main 위 링크를 [PackageManagement] - [Add package from git URL..]을 누른 후 붙여넣어준다! Multiplayer Samples Utilites를 받아주면 됩니다! 컴포넌트가 추가된 것을 확인할 수 있습니다!

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 4. 8.
  • textsms
유니티 Netcode for GameObject, Serialization

유니티 Netcode for GameObject, Serialization

NGO 에서는 INetworkSerializable 인터페이스를 network serialization를 위한 유저가 정의한 type을 실행시킬 수 있습니다! 유저가 정의한 type외에도 기본적으로 C#과 Unity Primitive을 지원합니다! C# Primitives bool, char, sbyte, byte, short, ushort, int, uint, long, ulong, float, double, string타입을 지원합니다. Unity Primitives Color, Color32, Vector2, Vector3, Vector4, Quaternion, Ray, Ray2D을 지원합니다! 유저가 정의한 Type Enum Types Arrays int[] 같은 배열 형태를 처리하기 위해서는 U..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 28.
  • textsms
유니티 Netcode for GameObject, Synchronizing States & Events

유니티 Netcode for GameObject, Synchronizing States & Events

Introduction NGO는 게임 상태를 동기화해주는 옵션들이 있습니다! RPC(Remote Procedure Calls) Custom Messages NetworkVariables RPC ServerRpc는 주로 플레이어가 world object를 사용하기 위해 서버에게 알릴 때 사용됩니다! ClientRpc는 서버가 플레이어의 동기화될 때 필요하지 않은 정보나 특별한 reconnection key값을 클라이언트들에게 알릴 때 사용됩니다 [RPC] 속성을 사용하기 위해서는 함수 접미사에 Rpc를 붙여야합니다! Custom Messages Custom Messages는 특별한 시나리오를 처리하기 위해 자신만의 특별한 "netcode message type"을 만들 수 있습니다 NetworkVariab..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 27.
  • textsms
유니티 Netcode for GameObject, Object Pooling

유니티 Netcode for GameObject, Object Pooling

Object Pooling NGO에는 Object Pooling기능을 제공하고 있습니다! 2022.09.04 - [나만의 꿀팁] - Unity Pooling System (최적화 구웃!) Unity Pooling System (최적화 구웃!) 서론 없이 바로 코드부터 투척!! 먼저 TestPooling을 싱글톤으로 만들어버리자! 그리고 무수히 많이 생성될 녀석 -> poolPrefab을 만들자! 그리고 이녀석들은 Queue로 관리된다! 선입선출? 맞나? FIFO이건 wlsdn629.tistory.com 기존 Object Pooling을 참고하시면 좋을 듯합니다! 다음은 BossRoom에서 사용되는 NetworkObject Pooling 방식입니다! using System; using System.Coll..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 26.
  • textsms
유니티 Netcode for GameObject, Object Spawning

유니티 Netcode for GameObject, Object Spawning

Object Spawning 유니티에서는 일반적으로 Instantiate 함수를 통해 게임오브젝트를 만들곤 합니다 Instantiate함수를 이용하여 만든 게임오브젝트를 동기화 하기 위해서는 Spawn()이라는 함수를 이용하면 됩니다! Network Prefab에는 게임오브젝트에 NetworkObject 컴포넌트가 붙어 있어야 합니다. 주의할 점은, 둘 이상의 NetworkObject 컴포넌트가 붙어 있는 프리팹은 추가할 수 없습니다! NetworkObject컴포넌트를 가지면 NetworkObject.NetworkObjectId를 이용할 수 있습니다! 사용법은 아래와 같습니다! Spawning a Network Prefab (Overview) Netcode는 서버권위적이므로 Network 프리팹을 소환하..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 25.
  • textsms
유니티 Netcode for GameObject / NetworkTransform & NetworkAnimator

유니티 Netcode for GameObject / NetworkTransform & NetworkAnimator

NetworkTransform 게임이 실행되는 동안 position, rotation, scale을 동기화 하고 싶으면 NetworkTransform컴포넌트를 사용하면 됩니다 Network Object의 자식들에 NetworkTransform컴포넌트를 하나 이상 가지게 되면 각 자식 Objects들은 개별적인 독립체로 따로 따로 동기화 됩니다! 각 오브젝트는 독립적으로 움직입니다! Client Network Transform 컴포넌트가 각 오브젝트마다 별개로 부착되어 있습니다! 모든 Transform을 동기화할 필요는 없습니다! 필요에 따라 체크를 하시면 됩니다! Scale이 필요 없으면 Scale 체크를 다 해제하면 됩니다! 또한 너무 잦은 Transform Update를 막기 위해 Thresholds..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 24.
  • textsms

유니티 Netcode for GameObject, NetworkManager

NetworkManager은 NGO에 관련한 모든 세팅에 대한 것을 가지고 있는 컴포넌트입니다! 즉, "Central Netcode Hub"라고 부를 수 있겠네요!! NetworkManager인스펙터엔 다양한 프로퍼티가 존재합니다! https://docs-multiplayer.unity3d.com/netcode/current/components/networkmanager#networkmanager-inspector-properties NetworkManager | Unity Multiplayer Networking The NetworkManager is a required Netcode for GameObjects (Netcode) component that has all of your project's..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 23.
  • textsms

유니티 Netcode for GameObject, Linking data to players

요약 Player Data는 플레이어가 연결할 때, 그리고 재접속할 때 필요합니다! ClientID는 연결될 때 생기지만 연결 해제될 때 사라지므로, ClientID를 Player Data로 쓰지 못합니다 따라서, 플레이어만의 고유한 ID를 이용하여 Player Data로 사용해야 합니다! 고유한 ID를 만들어 내기 위해선, 다음 옵션을 포함해야합니다! 고유한 유저 계정을 이용한 로그인 시스템 글로벌한 고유한 id, 예를 들어, System.Guid.NewGuid를 통해 생성된 GUID나 클라이언트 측에서 PlayerPrefs로 저장한 데이터들이 있습니다! 고유한 ID를 가지고, 각 플레이어의 Data(플레이어의 현재 상태)를 매핑시킬 수 있습니다 플레이어가 다시 연결할 때를 위해 호스트 측에서 데이터를..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 22.
  • textsms

유니티 Netcode for GameObject, Relay

Relay NGO는 호스트의 IP와 Port에 의해 연결될 수 있습니다! 하지만!!!!!!!! 호스트가 플레이하는 여러분과 같은 네트워크에 있지 않으면 연결을 위해 추가적인 서비스를 사용하여야 합니다! 연결을 위해 사용할 수 있는 방법에는 2가지가 있습니다 NAT punching Relay Server 이 중에 Relay Server를 사용할 것이므로 Relay Server에 관해서만 설명하고자 합니다! Relay Server란 호스트의 IP나 Port에 연결하는 것이 아닌 Relay 서버를 이용해서 클라이언트들을 연결시켜주는 방식입니다! 자세한 내용은 2023.03.01 - [Unity - GamingService/Relay] - 유니티(Unity) 릴레이 서버에 대해 (#Relay 1편) 유니티(Un..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 21.
  • textsms
유니티 Netcode for GameObject, Physics / Transports

유니티 Netcode for GameObject, Physics / Transports

Physics NGO는 물리 시뮬레이션이 서버에서만 실행되는 서버권위적인 방식으로 Physics에 대한 접근을 제한하고 있습니다! Network Pyhsics를 가능하게 하기 위해선 Object에 NetworkRigidbody 컴포넌트를 추가하면 됩니다! NetworkRigidbody / 충돌판정(서버 / 클라이언트) NetworkRigidbody는 모든 비권위적인 인스턴스들의 Rigidbody를 설정해줍니다! NetworkRigidbody의 Authority는 NetworkTransform컴포넌트에 의해 좌우지간 됩니다! NetworkTransform가 서버권위적인지 소유자권위적인지에 따라 NetworkRigidbody는 그거에 맞춰 따라갑니다! 이렇게 하는 이유는 물리 시뮬레이션은 서버의 인스턴스에서..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 20.
  • textsms
유니티 Netcode for GameObject, NetworkTime and Ticks

유니티 Netcode for GameObject, NetworkTime and Ticks

LocalTime and ServerTime 서버와 클라이언트, 클라이언트끼리는 커뮤니케이션이 동시에 이뤄질 수 없습니다! (RPC와 NetworkVariable이 즉각적으로 다른 컴퓨터에 반영되지 않는 이유) NetworkTime은 이러한 Transmission Delay를 고려해줍니다! LocalTime은 클라이언트가 서버보다 앞서있습니다! 클라이언트 권한이 있는 개체에 사용됩니다 ServerTime은 서버가 클라이언트보다 앞서있습니다! 서버 권한이 있는 개체에 사용됩니다 Examples 맵의 오브젝트들은 NetworkTransform 컴포넌트 없이 움직임을 동기화할 수 있습니다! using Unity.Netcode; using UnityEngine; public class MovingPlatform..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 19.
  • textsms
유니티 Netcode for GameObject, NetworkVariable

유니티 Netcode for GameObject, NetworkVariable

NetworkVariable 이란? NetworkVariable 는 RPC나 Custom Message 사용 없이 서버와 클라이언트간에 값을 동기화해주는 방법입니다! NetworkVariable 는 제너릭 형태로 값을 저장합니다! NetworkVariable.Value가 동기화 되는 상황 뒤 늦게 참여하는 클라이언트 : 자동으로 NetworkVarialbe 값이 동기화 됩니다 연결 된 클라이언트 : Network.OnvalueChanged event를 구독중인 클라이언트는 변화됨을 알림을 받습니다. Network.OnvalueChanged를 구독중인 callback 함수는 2개의 파라미터를 전달 받습니다 First Parameter(Previous) : 변화되기 전의 값 Second Parameter(C..

  • format_list_bulleted Unity/Netcode for GameObjects
  • · 2023. 3. 17.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
진우의 혼잣말 하는 블로그👱‍♀️
📂전체 카테고리
  • 분류 전체보기 (612) N
    • Unity (436) N
      • Study (216) N
      • VR (71)
      • AR (6)
      • Assets (39)
      • Fusion2 (8)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (8)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (20)
    • 나만의 꿀팁 (36)
    • Git 사용방법 (16)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (7)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
인기 글
최근 글
태그
  • #티스토리챌린지
  • #fusion2
  • #Unity
  • #웹 개발
  • #자바스크립트
  • #유니티 꿀팁
  • #VR
  • #Meta SDK
  • #유니티
  • #오블완
05-16 12:07
전체 방문자
오늘
어제
전체
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바