gpt4 book ai didi

c# - UNET 客户端无法发送服务器命令,主机可以

转载 作者:行者123 更新时间:2023-11-30 12:42:54 34 4
gpt4 key购买 nike

正如标题所暗示的,我遇到了一个问题,即客户端发送的命令没有被触发。

我尝试实现的基本功能是,当敌人出现在玩家面前并且我单击时,该玩家会被暂时击晕。如果我是主持人,工作正常,双方都完美注册。

如果我作为客户端玩游戏,我会到达“应该”发送命令的地步,但我注意到我收到一条警告,上面写着“正在尝试为非本地玩家发送命令”。同样,两端都没有任何反应。显然,我一定是在客户端做错了什么,但不知道还有什么其他方法可以解决这个问题。

“问题”代码。

            if (Input.GetButtonDown("Fire1")) {
Ray ray = new Ray(transform.position, transform.forward);
RaycastHit hit = new RaycastHit();
Physics.Raycast(ray, out hit, 20f);
if (hit.transform != null) {
if (hit.rigidbody != null) {
PlayerController controller = hit.rigidbody.GetComponent<PlayerController>();
if (controller != null) {
if (!controller.stunned) {
// Send the stun command to the server
controller.CmdStun();
}
}
}
}
}

方法调用

[Command]
public void CmdStun() {
// Report that the stun was sent
UnityEngine.Debug.Log("Stun Sent");
RpcStun();
}

[ClientRpc]
public void RpcStun() {
// Activate the stun timer.
stunTimer.Start();
// Track the players original color.
normalColor = manager.color;
// Make the players bot look like its shut down.
manager.InitiateColorChange(Color.black);
// Other code will check against this before trying to send another stun command.
stunned = true;
}

编辑:根据要求,这里是完整的两个脚本。

http://pastebin.com/mr4A9ZgH

http://pastebin.com/Qg0AjCCD

统一播放器配置:

https://gyazo.com/400c5b3a95c1a58f9b6e930b0c3c853b

https://gyazo.com/c17a7317767a00e2150ff34b03a03e8f

https://gyazo.com/322731aefbe69f9567d2b395523b8f2a

完整警告信息

Trying to send command for non-local player. UnityEngine.Networking.NetworkBehaviour:SendCommandInternal(NetworkWriter, Int32, String) PlayerController:CallCmdStun() ObjectInteractor:Update() (at Assets/Scripts/ObjectInteractor.cs:58)

最佳答案

您必须将脚本分配给 OBJECT 的根目录。我有同样的问题。您必须考虑的限制很少。

  1. NetworkIdentity 必须位于可生成预制件的根游戏对象上
  2. NetworkBehaviour 脚本必须在与 NetworkIdentity 相同的游戏对象上,而不是在子游戏对象上
  3. Prefab 不能在 NetworkManager 中注册,除非它们的根对象上有 NetworkIdentity

关于c# - UNET 客户端无法发送服务器命令,主机可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383632/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com