允许所有客户端发送除主机客户端之外的命令



有没有办法做到这一点?我想阻止在服务器(主机)上运行的本地客户端发送一些命令,同时允许所有远程客户端这样做。这可能吗?目前,下面的代码在所有客户端上运行。有没有办法修改脚本以使其以这种方式运行?谢谢!

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Player_Data : NetworkBehaviour
{
    private void Start()
    {
        if (!isLocalPlayer)
        {
            return;
        }
        CmdSendServerData();
    }
    [Command]
    void CmdSendServerData()
    {
        DisplayDataOnScreen("CmdSendServerData Called");
    }
    [Server]
    void DisplayDataOnScreen(string data)
    {
        GameObject infoDisplayText = GameObject.Find("InfoDisplay");
        infoDisplayText.GetComponent<Text>().text += data + "n";
    } 
}

使用isServer属性。您可以在卡曼德呼叫之前检查它。

public class Player_Data : NetworkBehaviour
{
    private void Start()
    {    
        if (isLocalPlayer && !isServer)
        {
            CmdSendServerData();
        }
    }
    [Command]
    void CmdSendServerData()
    {            
        DisplayDataOnScreen("CmdSendServerData Called");          
    }
    [Server]
    void DisplayDataOnScreen(string data)
    {
        GameObject infoDisplayText = GameObject.Find("InfoDisplay");
        infoDisplayText.GetComponent<Text>().text += data + "n";
    } 
}

最新更新