본문 바로가기
개발/Photon

유니티 C# 포톤 방 설정하기 Photon RoomOptions

by SPNK 2022. 12. 22.
반응형
  • 코드 작성
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using UnityEngine.UI;

public class NetworkManager : MonoBehaviourPunCallbacks
{

    public void CreateRoom()
    {
        PhotonNetwork.LocalPlayer.NickName = "닉네임 설정";

        RoomOptions roomOption = new RoomOptions();
        roomOption.MaxPlayers = 4; //최대 인원수 설정
        roomOption.IsOpen = true; //방이 열려있는지 닫혀있는지 설정
        roomOption.IsVisible = true; //비공개 방 여부

        PhotonNetwork.CreateRoom("방 이름", roomOption, null);
    }


    public void JoinOrCreateRoom()
    {
        PhotonNetwork.LocalPlayer.NickName = "닉네임 설정";

        RoomOptions roomOption = new RoomOptions();
        roomOption.MaxPlayers = 4; //최대 인원수 설정
        roomOption.IsOpen = true; //방이 열려있는지 닫혀있는지 설정
        roomOption.IsVisible = true; //비공개 방 여부

        PhotonNetwork.JoinOrCreateRoom("방 이름", roomOption, null);
    }
    
    public override void OnCreatedRoom()
    {
        Debug.Log("방을 만들었습니다.");
    }
    
    public override void OnJoinedRoom()
    {
        Debug.Log("방에 참여하였습니다.");
    }
    
    public override void OnCreateRoomFailed(short returnCode, string message)
    {
        Debug.Log("방 만들기 실패했습니다.");
    }

    public override void OnJoinRoomFailed(short returnCode, string message)
    {
        Debug.Log("방 참가 실패했습니다.");
    }

    public void RoomInfo()
    {
        if (PhotonNetwork.InRoom)
        {
            Debug.Log("현재 방 이름 : " + PhotonNetwork.CurrentRoom.Name);
            Debug.Log("현재 방 인원수 : " + PhotonNetwork.CurrentRoom.PlayerCount);
            Debug.Log("현재 방 최대인원수 : " + PhotonNetwork.CurrentRoom.MaxPlayers);
            Debug.Log("현재 방 열려있는지 : " + PhotonNetwork.CurrentRoom.IsOpen);
            Debug.Log("현재 방 비공개 여부 : " + PhotonNetwork.CurrentRoom.IsVisible);

            string str = "방에 있는 플레이어 목록 : ";

            for (int i = 0; i < PhotonNetwork.PlayerList.Length; i++)
            {
                str += PhotonNetwork.PlayerList[i].NickName + ", ";

                Debug.Log(str);
            }
        }
        else
        {
            Debug.Log("접속한 인원 수 : " + PhotonNetwork.CountOfPlayers);
            Debug.Log("방 개수 : " + PhotonNetwork.CountOfRooms);
            Debug.Log("모든 방에 있는 인원 수 : " + PhotonNetwork.CountOfPlayersInRooms);
            Debug.Log("로비에 접속했는지 : " + PhotonNetwork.InLobby);
            Debug.Log("서버에 연결됬는지 : " + PhotonNetwork.IsConnected);
        }
    }
}

 


참고할만한 글

 

 

유니티 C# 포톤 변수 동기화 Photon RPC

코드 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; using Photon.Pun; using Photon.Realtime; using UnityEngine.UI; public class NetworkManager : MonoBehaviourPunCallbacks { int towerHp = 100; bool isRaining = false;

parksh3641.tistory.com

 

 

유니티 C# 포톤 방 참가 퇴장 알림 간단 구현 Photon RPC

코드 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; using Photon.Pun; using Photon.Realtime; using UnityEngine.UI; public class NetworkManager : MonoBehaviourPunCallbacks { public Text notionText; public PhotonView

parksh3641.tistory.com

 

반응형

댓글