inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

매니저를 만드는데 이런경우는 어떻게하나요?

218

술홍

작성한 질문수 15

0

기존의 매니저들을 인풋,ui,리소스 등등을 따라서 만들어 봤는데요. 진짜 신세계더라구요..

그동안에 코드가 막 엉키고 정리도 잘안되고있었는데 저렇게 나눠서쓰니까 코드 분류하기가 너무 편하더라구요.. 그래서 이번에 네트워크 매니저도 하나 만들어서 쓸려고하고있는데요

제가 Pun2를 사용해서 게임을 만들어보려고하는데요..

pun2에서 지원하는 콜백을 네트워크 매니저에 붙일려고 하는데요

다른 매니저처럼 managers에다가 프로퍼티를 만들어서 접근하는식으로 만들었구요..

 

using UnityEngine;

using Photon.Pun;

public class NetworkManager: MonoBehaviourPunCallbacks

{

public override void OnConnectedToMaster()

{

Debug.Log("complete masterserver connect");

}

}

일단 테스트를 위해서 서버에 접속이되면 저 콜백이 작동을 하는지 테스트를 해봤거든요..

근데 작동을 안하더라구요..

기존 매니저들은 콜백방식은 아니었고 직접 호출하는 방식이었는데

저런식으로 콜백방식을 연동하려면 어떻게 하야할까요?

 

참고로 저걸 네트워크 매니저에 할당했을때는 안됐고 따로 게임오브젝트에서 서버접속을하는 코드를 따로 만들어서 접속시도했을때는 성공했습니다.

 

네트워크 매니저를 사용한방식에서는 로그조차 안뜨더라구요..

C# unity

답변 1

0

Rookiss

MonoBehaviourPunCallbacks는 MonoBehaviour를 상속받은 것으로 보이는데요.
그렇다면 당연히 Component이고, Component는 GameObject에 '기생'해야 작동을 합니다.

NetworkManager를 만드셨고 현재 프레임워크처럼 Managers에
_network = new NetworkManager(); 형태로 사용하고 싶다면,
이는 Component가 아니니 동작을 하지 않습니다.

해결 방법은 다양하게 존재하는데요.

1)
MonoBehaviourPunCallbacks을 상속받은 class를 하나 파고,
그것을 이용해 Prefab을 판 다음에 해당 Prefab을 NetworkManager에서 Instantiate한다거나.

2)
MonoBehaviourPunCallbacks을 상속받은 class를 하나 파고 (ex. Test라 한다면),
NetworkManager에 Init 함수를 파서 var go = new GameObject(); go.AddComponent<Test>();
형태로 직접 만들어주는 것도 가능합니다.

물론 그 외 다양한 변형이 있을 수 있지만
기본적으로 Component와 일반 C# Class는 구분해서 생각하셔야 합니다.
이 정도는 간단히 응용할 수 있어야 서버를 붙일 수 있다고 보고,
아직 익숙치 않다면 서버는 좀 미루고
싱글 게임을 더 만들면서 유니티에 익숙해지는게 좋을 수 있어요.

비쥬얼 스튜디오에서 unity연결이 없습니다.

0

41

2

UI 기능 관련 질문이 있습니다!

0

47

2

픽셀 좌표 스크린 좌표

0

35

0

전체적으로 코드 읽는게 굉장히 오래 걸리네요...

0

83

2

카메라 #2 수업 캐릭터 쓰러짐 해결

0

87

1

플레이어 움직임이 끝날때, 기울어짐 현상

0

86

1

Input 적용과 관련하여 질문 있습니다.

0

76

1

디버그 불가.. Unity에 연결 불가

0

85

1

달리기 애니메이션 에러

0

92

2

오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다

0

67

1

GetKey 오류

0

114

2

에셋을 어디에 올려두신지 알 수 있나요?

0

109

1

재귀호출? 오류나는데 왜 이래요 ?

0

170

6

Animation blending 파라미터 계산

0

70

1

newPos와 to지점이 겹쳐져야 하는거 아닌가요?

0

98

3

오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다

0

89

2

질문있습니다

0

144

2

아 이거 소스코드 같은거 없나요?

0

144

3

질문 드립니다. string.IsNullOrEmpty(name)

0

89

2

@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?

0

137

2

유니티6 NavMesh 안되는분들

1

177

1

Unity6 Unity-Chan Material 마젠타 문제 해결법

7

536

1

GetComponent<Poolable> 질문드립니다.

0

104

2

UI 불러오지 못함

0

120

2