我对PunRpc电话有点困惑,我尝试了PhotonTarget.Others,看看它是否会健康 - ;在其他客户,但它没有工作。
目前我想知道如何做到健康 - ;当我按空格时,在其他客户端上。
这是我尝试过的: 这是命令:
photonView.RPC("healthReduction", PhotonTargets.Others, null);
这是RPC
[PunRPC]
void healthReduction()
{
health--;
Debug.Log("Health--");
}
但它仍然无法正常工作。
答案 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--;
}
}