2016-09-27 10 views
0

私はPunRpc呼び出しとちょっと混乱しています。私はPhotonTargetを試しました。他のクライアントでは動作しませんでした。Unity Photonマルチプレイヤーで他のクライアントの変数を変更するにはどうしたらいいですか?

現時点で私はどのように健康を遂げることができるか知りたいです。私がスペースを押すと、他のクライアントに。

これは私がしようとしているものです: これはコマンドです:

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

と、これはRPC

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

ですが、それはまだ仕事を文句を言いません。

+0

あなたのプレイヤースクリプトのいくつかのコードを持っていますか? –

+0

あなたのログには何かがありますか?メソッドが存在しないか、 のパラメータが一致しない場合、PUNはエラーを出力します。 RPC呼び出しを記録しません。それが呼び出されると確信していますか? RPC使用サンプルについては、PUNのデモを参照してください。 – photonians

+0

RPCコールを使用すると、ENEMYSの状態を低下させることはできません。それでPhotonTargetsを呼び出すと、他の人は自分のプレーヤーのコードを実行しますが、他の人だけが自分の更新されたプレーヤーの状態を見ることができません。私はENEMYのプレイヤーでこのコードを実行したいが、今はRPCコールでは不可能だと思う。他の人が見ることができるように自分の変数を更新するだけだが、敵の変数を取得して修正することはできない:/。 –

答えて

0

私はPlayerManagerからPlayerManager1スクリプトにアクセスしたい場合、たとえば、私はこのPlayerManager1.Instance.photonView.RPC("reduceMyHealth",PhotonTargets.All,null)

が、これは)(PlayerManager1でPunRpcをreduceMyHealthを呼び出しますか、インスタンスを使用し、2つの異なる名前のスクリプトを使用してこれを解決しました。

とアクセスしたいスクリプトにこのコードを追加する必要があり、これを行うには: static public PlayerManager1 Instance;とのスタートを(){} Instance = this;

関連する問題