Minimum players to enter in a room PHOTON

非 Y 不嫁゛ 提交于 2021-01-29 14:30:25

问题


I am doing a multiplayer game and I want to know how I can add a minimum number of players for a user to enter a room . Like to not be alone till one player is connected at least. What I should add to my script? I have this Room Options function but It doesn't work too add like Min players or something to it. (I expected if is MaxPlayers to exist MinPlayers too)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon;
using Photon.Pun;
using UnityEngine.UI;
using Photon.Realtime;

public class MPManager : MonoBehaviourPunCallbacks, IPunObservable
{
    public PlayFabAuth auth;

    


    public string GameVersion;
    public Text connectState;
    
    public GameObject[] DisableOnConnected;
    public GameObject[] DisableOnJoinRoom;
    public GameObject[] EnableOnConnected;
    public GameObject[] EnableOnJoinRoom;
    public LoadedPlayer loadPlayer;
    // Start is called before the first frame update
    void Start()
    {
       

    }

    // Update is called once per frame
    void Update()
    {
        
    }

    private void FixedUpdate()
    {
        connectState.text = "Connection: " + PhotonNetwork.NetworkClientState;
    }
    public void ConnectToMaster()
    {
        //  PhotonNetwork.connectionStateDetailed
        PhotonNetwork.ConnectUsingSettings();
    }

    public override void OnConnectedToMaster()
    {
        PhotonNetwork.JoinLobby();
    }
    public override void OnJoinedLobby(){
        
        foreach(GameObject disable in DisableOnConnected){
            disable.SetActive(false);
        }
        foreach (GameObject enable in EnableOnConnected){
            enable.SetActive(true);
        }
        
        
    }

    public void CreateOrJoin()
    {
        PhotonNetwork.LeaveLobby();
        PhotonNetwork.JoinRandomRoom();
    }
    public override void OnJoinRandomFailed(short returnCode, string message)
    {

        RoomOptions rm = new RoomOptions
        {
            
            MaxPlayers = 3,
            IsVisible = true

        };
        int rndID = Random.Range(0, 3000);
        PhotonNetwork.CreateRoom("Default: " + rndID, rm, TypedLobby.Default);
    }
   
    public override void OnJoinedRoom()
    {
        foreach (GameObject disable in DisableOnJoinRoom)
        {
            disable.SetActive(false);
        }
        foreach (GameObject enable in EnableOnJoinRoom)
        {
            enable.SetActive(true);

        }
        Debug.Log(loadPlayer.currentPlayer.name);

        GameObject player =  PhotonNetwork.Instantiate(loadPlayer.currentPlayer.name , Vector3.zero, Quaternion.identity, 0);
        

    }
    public override void OnLeftRoom()
   
    {
        PhotonNetwork.LeaveRoom();
       
    }

    public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    {
        throw new System.NotImplementedException();
    }
}

回答1:


Thank you for choosing Photon!

You need to get the count of actors (PhotonNetwork.CurrentRoom.PlayerCount) when you join the room (OnJoinedRoom) or when another player joins the room (OnPlayerEnteredRoom). When the number of actors joined is enough for you, start the game logic, e.g. load scene, send a custom event etc.



来源:https://stackoverflow.com/questions/61458889/minimum-players-to-enter-in-a-room-photon

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!