0701
Preparation
- Photon Pun 2 Free Download and Import
Pun ์ค์ต
void Start()
{
//๋ฒํผ ๋นํ์ฑํ
signOut_btn.interactable = false;
join_btn.interactable = false;
}
์ ์ฒด ์ฝ๋
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Photon.Pun;
using Photon.Realtime;
enum NetworkState { none, connected, disconnected, createRoom, inRoom}
public class LobbyManager : MonoBehaviourPunCallbacks
{
// ์ ์ ์ ์๋ ๋ก๊ทธ์ธ ๋ฒํผ๋ง ๋ณด์ด๊ณ ์ ์ ํ์๋ out, enter๋ง ๋ณด์ธ๋ค
public Text info_txt;
public Button signIn_btn;
public Button signOut_btn;
public Button join_btn;
NetworkState state = NetworkState.none;
void Start()
{
// ๊ฒ์ ์ ๋ณด ์ค์ ----------------------
PhotonNetwork.GameVersion = "0.1";
PhotonNetwork.SendRate = 30; // network Data ์ก์์ ๋น์จ (ํจํท)
PhotonNetwork.SerializationRate = 30; // Remote ๊ฐ์ฒด Data ์ก์์ ๋น์จ
//-------------------------------------
signOut_btn.interactable = false;
join_btn.interactable = false;
}
public void Connect_Server()
{
PhotonNetwork.ConnectUsingSettings();
info_txt.text = "Connecting to Master Server...";
}
**public override void OnConnectedToMaster()**
{
info_txt.text = "Connected Successfully";
signIn_btn.interactable = false;
signOut_btn.interactable = true;
join_btn.interactable = true;
state = NetworkState.connected;
}
public void Disconnect_Server()
{
PhotonNetwork.Disconnect();
info_txt.text = "Disconnected Successfully";
signIn_btn.interactable = true;
signOut_btn.interactable = false;
join_btn.interactable = false;
state = NetworkState.disconnected;
}
// ์ ์ ์คํจ์
**public override void OnDisconnected(DisconnectCause cause)**
{
if (state == NetworkState.disconnected)
{
info_txt.text = "Offline";
}
if (state == NetworkState.connected) // ์ ์ ๋์๋ค๊ฐ ๋๊ธธ ๊ฒฝ์ฐ
{
info_txt.text = "Offline : Reconnecting...";
PhotonNetwork.ConnectUsingSettings();
}
}
public void Connect_Room()
{
signIn_btn.interactable = false;
signOut_btn.interactable = false;
join_btn.interactable = false;
if(PhotonNetwork.IsConnected == true)
{
info_txt.text = "Connecting to Room...";
PhotonNetwork.JoinRandomRoom(); //๊ฐ์ค ๋ ๋ฐฉ ์ค ์์๋ก ์ ์ ์๋
// * ๋ฐฉ์ด ์์ ๊ฒฝ์ฐ ์๋ฌ ๋ฐ์
}
}
// ์์์ ๋ฐฉ ์ ์ ์คํจ ์
**public override void OnJoinRandomFailed(short returnCode, string message)**
{
info_txt.text = "Creating Room...";
// ๋ฐฉ์ ๋ง๋ฌ
PhotonNetwork.CreateRoom(null, new RoomOptions { MaxPlayers = 4 });
}
// ๋ฐฉ ์ ์ ์
**public override void OnJoinedRoom()**
{
// ๋ฐฉ์ ๋ง๋ ์ฌ๋์ ๋ฐฉ์ฅ, ๋ค์ด๊ฐ ์ฌ๋์ ๋ฉค๋ฒ๊ฐ ๋จ
info_txt.text = "Joined \\n Room : " + PhotonNetwork.CurrentRoom.Name + " \\n Player : " + PhotonNetwork.PlayerList.Length + "/" + PhotonNetwork.CurrentRoom.MaxPlayers;
//PhotonNetwork.LoadLevel("2_Game"); // Load Scene
}
void Update()
{
print("Connection status " + PhotonNetwork.IsConnected);
}
}
- Overriding
Player์ Add Component - **PhotonView.**cs
AnimationView.cs ์ถ๊ฐ์ PhotonView.IsMine์๋ง ์ ๋๋ฉ์ด์ ์ฝ๋ ์์ฑํด๋ remote์๋ ๋ฐ์๋๋ค
RPCs
Remote Procedure Calls
void Start()
{
//๋ฒํผ ๋นํ์ฑํ
signOut_btn.interactable = false;
join_btn.interactable = false;
}
Angular Drag - ํ์ ๋ง์ฐฐ ๊ณ์
'๐ฎUnity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML-Agents] 3D Ball ์ค์ต (0) | 2022.08.08 |
---|---|
[ML-Agents] ML-Agents ํบ์๋ณด๊ธฐ (0) | 2022.08.08 |
[Photon] Photon ํบ์๋ณด๊ธฐ (0) | 2022.07.31 |
[VR] ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ - OVR (0) | 2022.07.31 |
Graphics / Line (0) | 2022.07.31 |
๋๊ธ