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