我有一个关于 RPC 和 Photon PUN 的问题。
我的游戏中有 1 个调用 RPC 方法的 GameObject。这个游戏对象包含一个 C# 脚本(包含 RPC 方法)和 PhotonView 组件,有/没有(应该是相同的)观察脚本和 ObserveOption 等于 Off。
我有一个角色必须向立方体射击。该多维数据集附加了前面描述的脚本和组件。
RPC 发送一次(当立方体与射弹碰撞时),但在我的场景中,我有许多 Cube 应该接收消息,因为我必须降低命中立方体的健康状况。问题是只有 1 个 Cube 接收 RPC 调用(RPC 在游戏开始时被第一个实例化的对象捕获)但 RPC 应该被我场景中的所有 Cube 接收(对吗?)。
立方体完全相同,但它们具有不同的 photonView ID(正确),因此我们可以检查降低生命值的命中立方体是否是正确的。
这是代码的重要部分:
public static void reduceHealthRPC(float damage, int viewID)
{
photonView.RPC("reduceHealth", PhotonTargets.All, damage, viewID);
}
[RPC]
public void reduceHealth(float damage, int viewID)
{
if(this._viewID != viewID)
{
Debug.Log ("The view ID is not mine. My viewID is: " + _viewID + ", and the one which is coming form RPC is: " + viewID);
return;
}
currentHealth -= damage;
Debug.Log("My life is: " + currentHealth);
}
请帮助我理解我做错了什么。谢谢你。