2016-12-31 9 views
2

すべての知っているように、Unetのドキュメントは不足しています。Unity3d unet - クライアントから発信されたTargetRPCコール

私はこれに答えたいと思っています。うまくいけば、後で他の人を検索するのに役立ちます。ここで

は私がしようとしているものです:

  1. は、プレイヤークライアント上のレイキャストでヒットを検出します。
  2. [コマンド]
  3. は問題がTargetRPCがNetworkConnection値が必要ですが、唯一の文書化ということである[TargetRPC]

を使用してヒットしたものをクライアントに通知使って専用サーバーへのヒットを示しそのオブジェクトからConnectToClientを使用することです - 私は持っていないし、取得する必要があります。

適切なNetworkConnection値に変換できる方法で、サーバー側のクライアント側でヒットしたプレーヤーを特定するにはどうすればよいですか。ローカルプレーヤーの権限オブジェクトで

CmdIHitSomeone(unknown); 

[Command] 
void CmdIHitSomeone(NetworkConnect unknown) { 
    TargetLetYourVictimFeelIt(unknown); 
} 

[TargetRPC] 
void TargetLetYourVictimFeelIt(NetworkConnection unknown){ 
    //do something bad here 
} 

答えて

1
NetworkConnection connnection = NetworkServer.objects[netId].connectionToClient; 
+1

あなたはあなたの答えを拡張してくださいもらえますか? –

0
[Command] 
void CmdIHitSomeone(int amountToHit, NetworkIdentity target) 
{ 
    TargetLetYourVictimFeelIt(target.connectionToClient , amountToHit);  
} 
[TargetRPC] 
void TargetLetYourVictimFeelIt(NetworkConnection target, int amount) 
{ 
    //do something bad here 
} 
// call your command by getting NetworkIdentitiy component of your target/enemy 
GameObject target; 
CmdIHitSomeone(10, target.GetComponent<NetworkIdentity>()); 
関連する問題