如何在Unity Photon多人游戏中更改其他客户端变量?

时间:2016-09-27 13:34:45

标签: unity3d unity5 photon unity-networking

我对PunRpc电话有点困惑,我尝试了PhotonTarget.Others,看看它是否会健康 - ;在其他客户,但它没有工作。

目前我想知道如何做到健康 - ;当我按空格时,在其他客户端上。

这是我尝试过的: 这是命令:

photonView.RPC("healthReduction", PhotonTargets.Others, null);

这是RPC

    [PunRPC]
void healthReduction()
{
    health--;
    Debug.Log("Health--");
}

但它仍然无法正常工作。

2 个答案:

答案 0 :(得分:0)

我通过使用Instance并使用2个不同的命名脚本来解决这个问题,例如,如果我想从PlayerManager访问PlayerManager1脚本,我就这样做PlayerManager1.Instance.photonView.RPC("reduceMyHealth",PhotonTargets.All,null)

这将调用PlayerManager1中的reduceMyHealth()PunRpc。

要执行此操作,您必须将此代码添加到要访问的脚本中: static public PlayerManager1 Instance;和开始(){} Instance = this;

答案 1 :(得分:0)

我认为这很容易解决。 源代码如下。

public class TestPhoton : Photon.PunBehaviour
{
    public PhotonView gameView;

    void Start()
    {
        gameView = this.GetComponent<PhotonView>();
    }

    public void OnClickTest()
    {
        photonView.RPC("HealthReduction", PhotonTargets.Others);
    }

    [PunRPC]
    public void HealthReduction()
    {
        health--;
    }
}