2017-07-26 11 views
0

ねえねえ、ネットワーク上のオブジェクトをクライアントとして破棄するのに問題があるので、ピックアップシステムにピックアップシステムがあり、ピックアップシステムからピックアップしてピックアップします。あなたの目録と地上のアイテムは破壊されます。 これで、サーバーがアイテムを選択したときにクライアントが単純に機能しなくなったときに、すべて正常に機能します。アイテムをインベントリに追加するだけです。 今、私はコマンドをどのようにしてコマンドを作っているのか、それはうまくいかないようです。あなたと対話しているアイテムはローカルプレイヤー権限を持ち、登録されていてプレイヤーはローカルプレイヤーathorityを持っています作業。これは私もClientRPC(それはまったく同じコードで、コマンドと同じ時間と呼ばれている)と それはまだdoesntの仕事 おかげユニティ、クライアントオブジェクトが破棄される

+0

あなたの在庫にアイテムを追加する方法が分かりません - ClientScene.RegisterプレハブはNetworkManagerに追加するスポーン可能なプレハブを追加するだけです(以前にサーバーを最初に起動したとき) – Fiffe

答えて

0

を同じことを行っている私のスクリプト

[Command] 
public void CmdAddItem(GameObject hitcollider, int i) 

{ 
    ClientScene.RegisterPrefab (hitcollider); 
    NetworkServer.Destroy (hitcollider); 
} 

ですサーバが特定のオブジェクトを破壊するようにするには、最初にすべてのクライアントのNetworkManager上に生成可能なプレハブとして登録する必要があります.NetworkIdentityを持つ必要があり、サーバによって生成される必要があります。

あなたはすでにこれを持っていれば、単にこの関数を呼び出す:

[Command] 
    public void CmdDestroyObject(NetworkInstanceId netID) 
    { 
     GameObject theObject = NetworkServer.FindLocalObject (netID); 
     NetworkServer.Destroy (theObject); 
    } 

NETIDはあなたが破壊するオブジェクトのNetworkInstanceIdです。

関連する問題