룸에 입장한후 로드된 BattleField씬에서는 아무런 동작도 없이 단순히 씬만 전환된것 뿐이다 .Lobby씬에서 유저명을 입력받아 네트워크상 식별자를 부여한 후 무작위 추출된 룸에 입장하고 BattleField씬으로 전환된것 이다. 따라서 BattleField씬으로 넘어왔다는 것은 이미 룸에 입장한 상태이므로 주인공 캐릭터를 생성하는 로직을 구현해야 한다.
배틀필드 씬을 열어 하이라키뷰에 빈 게임오브젝트를 하나 만들고 이름을 GameManager로 지정한다. 주인공을 생성하는 로직을 처리할 GameManager스크립트를 만들고 추가한다.
using UnityEngine;
using Photon.Pun;
public class GameManager : MonoBehaviourPunCallbacks {
void Awake() {
CreatePlayer();
}
void CreatePlayer() {
// 출현 위치 정보를 배열에 저장
Transform[] points = GameObject.Find("SpawnPointGroup").GetComponentsInChildren<Transform>();
int idx = Random.Range(1, points.Length);
// 네트워크상에 캐릭터 생성
PhotonNetwork.Instantiate("Player",
points[idx].position,
points[idx].rotation,
0);
}
}
메뉴 [File][Build settings..]를 선택해 Lobby와 BattleField씬을 끌어다 놓는다. 위쪽의 씬이 먼저 실행된다
빌드후 유니티는 로비씬에서 실행한다.
2개의 게임은 로그인 상태이고 로그인 버튼을 먼저 누른 우저가 룸을 생성해 입장한다.
하이라키뷰의 Player(Clone)를 선택해 인스펙터뷰에서 PhotonView컴포넌트를 보면 owner속성에 User ID값이 설정된 것을 확인할 수 있다.
'유니티게임강좌 > 포톤클라우드 네트워크' 카테고리의 다른 글
[포톤클라우드] 룸 목록 받아오기 (0) | 2023.04.05 |
---|---|
[포톤클라우드] 룸 목록 UI구현 (0) | 2023.04.05 |
[포톤클라우드] 로그인 UI 제작 (0) | 2023.04.05 |
[포톤클라우드] 로비제작 (0) | 2023.04.05 |
[포톤클라우드] 피격및 리스폰(재생) (0) | 2023.04.05 |