๐ŸŽฎUnity

[photon] ๋ฐฉ ๋งŒ๋“ค๊ธฐ, RPCs

taesooya 2022. 7. 31.

0701

 

Preparation


  1. 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

๋Œ“๊ธ€