2016-08-11 2 views
0

私は、人がマルチプレイヤーで場面を歩き回りたいと思っています。私はボディのメッシュレンダラーをオフにしたいと思っています。 (ボディは子供のオブジェクトです) だから、Networkbehaviourスクリプトで Body.GetComponent<MeshRenderer>().enabled = false; と書いています。残念ながら、これはネットワーク内では同期されません。Unity 5.4。子どものメッシュレンダラーをマルチプレイヤーで回す

これをどのように同期できますか?

答えて

1

あなたはUnity UNETを使用していると仮定します。

  1. ブール値を作成します。
  2. [SyncVar]としてマーク
  3. フック機能を作成します。ブール変数がその値を変更すると、そのフック関数はUNETによって自動的に呼び出されます。

リンク:https://docs.unity3d.com/ScriptReference/Networking.SyncVarAttribute.html

[SyncVar(hook = "OnSomeValueChange")] 
public bool isMeshEnabled; 

public void OnSomeValueChange(bool valueToChangeTo) 
{ 
    isMeshEnabled = valueToChangeTo; 
    // Enable/Disable client's mesh here 
} 
関連する問題