inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG

Archer, Goblin 네트워크 기능 확장

Default Player Prefab 파괴시 재생성

74

건강한 돌고래

작성한 질문수 2

0

이번 강의에서 RPC를 통해 클라이언트의 클라이언트의 캐릭터들이 죽는것을 보았는데
만일 클라이언트의 캐릭터를 리스폰 해야 한다면 Network Manager 컴포넌트에 설정된 Default Player Prefab을 spawn 하는 방법이 있는건가요?

아니면 32강의 고블린 생성 방식처럼 Instantiate()로 워리어나 아처 캐릭터를 생성시킨 뒤 NetworkObject 컴포넌트의 Spawn()를 사용하는건가요?

unity 네트워크 unity2d 유니티6

답변 2

1

이재현

네, 가능합니다. ~

다음과 같이 커스텀 스폰 로직을 구현하실 수 있습니다. 하지만 보통 네트워크 게임에서 주인공 캐릭터를 삭제하지는 않습니다. (네트워크 세션이 종료됩니다.) 따라서, 리스폰 시간동안 캐릭터를 비활성화했다가 다시 활성화시키는 방법을 사용합니다.

 

var player = Instantiate(playerPrefab, spawnPos, Quaternion.identity);
player.GetComponent<NetworkObject>().SpawnAsPlayerObject(clientId, true);

1

건강한 돌고래

알려주셔서 감사합니다~!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 건강한 돌고래님.

네트워크 게임에서 캐릭터를 리스폰하는 방식은 복합적이지만, 두 가지 주요 방법으로 접근할 수 있습니다:

1. Default Player Prefab 이용

Network ManagerDefault Player Prefab은 보통 플레이어가 처음 접속할 때 생성되는 기본 캐릭터를 지정합니다. 캐릭터가 사망하여 리스폰할 때도 이 방법을 활용할 수 있으나, 게임의 특성에 따라 다양한 상황에 맞게 수정될 필요가 있습니다.

  • 장점: 간단하게 초기화 가능.
  • 단점: 커스텀 초기화가 어려울 수 있음.

2. Instantiate()NetworkObject.Spawn()

32강의 고블린 생성 방식처럼 캐릭터를 수동으로 생성하고 NetworkObject의 Spawn() 메서드를 사용하는 방법이 있습니다. 이 방법은 복잡한 초기화가 필요하거나, 캐릭터에 다양한 초기 상태를 설정해야 할 때 적합합니다.

  • 장점: 유연하게 다양한 초기화가 가능.
  • 단점: 관리해야 할 코드가 늘어날 수 있음.

추가 팁

  • 상황에 따라 NetworkManager.Singleton.ServerChangeScene()을 활용하여 씬 전환과 함께 새로운 플레이어 프리팹을 생성하는 방법도 고려할 수 있습니다.
  • 리스폰 위치, 초기화 상태 등은 게임의 상호작용 규칙에 따라 결정되므로, 게임 디자인에 맞게 커스터마이징하세요.

참조

질문자님의 궁금증 해결에 이 답변이 도움이 되었길 바랍니다! 추가로 더 궁금한 점이 있다면 언제든지 또 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Spider와 Monster 구현 방식을 구분한 이유

1

5

1

Sprute Sheet에 대해서.

0

7

1

4. Container 빌드 & 저장하기 - 자료 관련

1

20

2

IO활용-회원관리예제1 샘플코드 문의

0

15

1

SSM접속에 대해

0

25

2

안녕하세요, Oracle Cloud Free Tier 가입 과정에서 계속 오류가 발생해 문의드립니다.

1

29

2

node js 설치 시 npm이 계속 안됩니다.

0

29

1

ResourceManager 클래스 관련 질문

1

31

2

FBX chan 모델

0

25

1

첨부된 수업자료와 강의 내용이 다릅니다.

0

50

2

몬스터 HP 게이지바 이동

0

22

1

TextMeshPro용 커스텀 한글 2350자.txt 파일은 어디에 있나요?

0

26

1

7.5 강의에서 settings.json 붙여 넣기 내용이 영상과 다릅니다

0

54

2

6.0LTS, 6.3LTS 패키지 매니져 에러

0

131

3

캐릭터 중복 생성 문제

0

83

2

완강 후 궁금한 것

0

83

1

39강 질문

0

65

1

기초적인 질문

0

95

2

캐릭터 네트워크 애니메이션 질문 (29강의)

0

64

1

Warrior가 Gobin에게 달려가 충돌하면 Gobin이 뒤로 튀겨나가는 현상??

0

76

2

Warrior의 InputHandler.cs 의 OnEnable(), OnDisable() 메서드 부분에서 공격에 문제가 있는 것 같아요.

1

69

2

Netcode 사용시 운영관점 질문

0

80

1

캐릭터 이동 방식을 A* Pathfinding 에셋으로도 한번 부탁드립니다.

1

94

1

여기에 쓰인 기술이 적합할지 궁금하네요.

0

118

2