有办法做到这一点吗?我想阻止运行在服务器(主机)上的本地客户端发送一些命令,同时允许所有远程客户端这样做。这可能吗?目前,以下代码在所有客户端上运行。有没有办法修改脚本使其以这种方式运行?谢谢!
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";
}
}
答案 0 :(得分:1)
使用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";
}
}