์ฒ์ ๋ฐฉ ๋ง๋๋ ์ปดํจํฐ ์บ๋ฆญํฐ๋ ์คํฐ์ด ์ ์์ ์ผ๋ก ๋๋๋ฐ , ๋ค์์ ๋ค์ด์จ ์ ์ ์ ์บ๋ฆญํฐ ์คํฐ์ด ์๋จ,ย ์ด๊ฑฐ ์์ด๋ฌ๋๊ฑฐ์?
๊ด๋ จ ์ฝ๋ ์ ๋ฌธ์ด๊ณ player ์ฝ๋๋ ํ์ ์์ง?
์คํฐํฌ์ธํธ๋ 2๊ฐ๋ก ์ ์กํ.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
public class PhotonManager : MonoBehaviourPunCallbacks
{
ย ย private readonly string gameVersion = "v1.0";
ย ย private string userId = "ysef";
ย ย private void Awake()
ย ย {
ย ย ย ย PhotonNetwork.GameVersion = gameVersion;
ย ย ย ย //๊ฒ์ ๋ฒ์ ์ง์
ย ย ย ย PhotonNetwork.ConnectUsingSettings();
ย ย ย ย //์๋ฒ ์ ์
ย ย }
ย ย void Start()
ย ย {
ย ย ย ย Debug.Log("00.ํฌํค๋งค๋์ ์์");
ย ย ย ย PhotonNetwork.NickName = userId;
ย ย }
ย ย public override void OnConnectedToMaster()
ย ย {
ย ย ย ย Debug.Log("01.ํฌํค์๋ฒ์ ์ ์");
ย ย ย ย PhotonNetwork.JoinRandomRoom();
ย ย }
ย ย public override void OnJoinRandomFailed(short returnCode, string message)
ย ย {
ย ย ย ย Debug.Log("02. ๋๋ค ๋ฃธ ์ ์ ์คํจ");
ย ย ย ย //๋ฃธ์์ฑ ์ค์
ย ย ย ย RoomOptions ro = new RoomOptions();
ย ย ย ย ro.IsOpen = true;
ย ย ย ย ro.IsVisible = true;
ย ย ย ย ro.MaxPlayers = 20;
ย ย ย ย PhotonNetwork.CreateRoom("room_1", ro);
ย ย }
ย ย public override void OnCreatedRoom()
ย ย {
ย ย ย ย Debug.Log("03. ๋ฐฉ ์์ฑ ์๋ฃ");
ย ย }
ย ย public override void OnJoinedRoom()
ย ย {
ย ย ย ย Debug.Log("04.๋ฐฉ ์
์ฅ ์๋ฃ");
ย ย ย ย if (PhotonNetwork.IsMasterClient)
ย ย ย ย ย ย GameManager.instance.isConnect = true;
ย ย }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
public class GameManager : MonoBehaviour
{
ย public static GameManager instance=null;
ย public bool isConnect=false;
ย public ย Transform[] spawnPoints;
ย private void Awake()
ย {
ย ย if(instance==null)
ย ย {
ย ย ย ย instance=this;
ย ย ย ย DontDestroyOnLoad(this.gameObject);
ย ย }
ย ย else if (instance!= this)
ย ย {
ย ย ย ย Destroy(this.gameObject);
ย ย }
ย }
ย ย void Start()
ย ย {
ย ย ย ย StartCoroutine(CreatePlayer());
ย ย ย ย
ย ย }
ย ย // Update is called once per frame
ย ย void Update()
ย ย {
ย ย ย ย
ย ย }
ย ย IEnumerator CreatePlayer(){
ย ย ย
ย ย ย yield return new WaitUntil(() => isConnect);
ย ย ย ย
ย ย ย ย ย ย spawnPoints = GameObject.Find("SpawnPointGroup").GetComponentsInChildren<Transform>();
ย ย ย ย ย ย Vector3 posit = spawnPoints[PhotonNetwork.CurrentRoom.PlayerCount].position;
ย ย ย ย ย ย
ย ย ย ย ย ย GameObject playerTemp = PhotonNetwork.Instantiate("Player", posit,Quaternion.identity, 0);
ย ย ย ย ย ย Debug.Log("์บ๋ฆญํฐ ์คํฐ๋จ");
ย ย ย ย }
ย ย }
์ ํด๊ฒฐํจ ์ข๋ณ์ ์ง ํ์๋ค ใ ใ ใ if (PhotonNetwork.IsMasterClient) GameManager.instance.isConnect = true; ์ด๊ฑฐ ์ ์กฐ๊ฑด๋ฌธ ๊ฑธ์ด๋์๋ ใ ใ ใ