Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 允许除主机客户端以外的所有客户端发送命令_C#_Unity3d_Networking - Fatal编程技术网

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

C# 允许除主机客户端以外的所有客户端发送命令,c#,unity3d,networking,C#,Unity3d,Networking,有办法做到这一点吗?我想防止在服务器主机上运行的本地客户端发送一些命令,同时允许所有远程客户端这样做。这可能吗?目前,以下代码在所有客户端上运行。有没有办法修改脚本,使其以这种方式运行?谢谢大家! using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; public class Player_Data : NetworkBehaviour { private void Start() {

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

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属性。你可以在cammand打电话之前检查一下

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";
    } 
}