2016-09-27 130 views
0

我對PunRpc電話有點困惑,我試了PhotonTarget.Others,看看它是否會健康 - ;在其他客戶端,但它沒有工作。如何在Unity Photon多人遊戲中更改其他客戶端變量?

此刻我想知道我該如何做健康 - 當我按下空間時在其他客戶端上。

這是我曾嘗試: 這是命令:

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

,這是RPC

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

,但它仍然不會工作。

+0

你有你的播放器腳本的一些代碼? –

+0

你的日誌中有什麼?如果方法不存在或者參數不匹配,則PUN輸出錯誤。 您不記錄RPC調用。你確定它被調用嗎? 請參閱PUN演示以瞭解RPC使用示例。 – photonians

+0

事情是,與RPC調用,我不能減少ENEMYS健康,我只能減少我的健康。所以當我打電話給PhotonTargets.Others它會執行我的播放器上的代碼,但只有其他人可以看到我的播放器更新的健康,我不能。我想在ENEMY的玩家身上執行這個代碼,但是現在我相信這對RPC調用來說是不可能的,它只能更新你自己的變量,以便其他人可以看到它們,但是爲了得到敵人的變量並修改它是不可能的,我相信:/。 –

回答

0

我解決了這個通過,如果我想從PlayerManager訪問PlayerManager1腳本中使用的實例,並使用2個不同的命名腳本,例如,我做這個PlayerManager1.Instance.photonView.RPC("reduceMyHealth",PhotonTargets.All,null)

這將調用reduceMyHealth()PunRpc在PlayerManager1。

而要做到這一點,你必須將此代碼添加到腳本要訪問: static public PlayerManager1 Instance;和啓動(){} Instance = this;

相關問題