2016-10-12 8 views
1

こんにちは!ユニティネットワーク[UNET]:静的シーンオブジェクトの同期化

私は比較的新しいUnityで、UNETを使って新しいゲームプロジェクトを進めています。私はこの問題で数日間立ち往生しました:Unityで既存の(生成されていない)シーンオブジェクトをどのように同期させることができますか?

"background"という名前のオブジェクトがあります。これはスプライトです。サーバーがマップをロードすると、バックグラウンドの変換スケールが変更されます。私がしたいのは、新しく接続されたクライアントと同期することだけです。

ドキュメントには、オブジェクトにNetworkIndentityコンポーネントとNetworkTransformコンポーネントがある場合は、自動的に行う必要があることが記載されています。しかし、それは私のためには機能しません! ; 40 http://prntscr.com/csxoqd 私は、スケール40とスプライトを持っている:ここでは https://docs.unity3d.com/Manual/UNetSceneObjects.html

を簡素化するプロジェクトです。 その後、OnServerStartでは100に変更します.100 - ホストまたはサーバーでのみ有効です。

using UnityEngine; 
using System.Collections; 
using UnityEngine.Networking; 

public class NewBehaviourScript : NetworkBehaviour 
{ 
    // Use this for initialization 
    public override void OnStartServer() 
    { 
     this.transform.localScale = new Vector3(100, 100, 1); 
    } 

    // Update is called once per frame 
    void Update() { 

    } 
} 

しかし、クライアント側では何も起こりません。私はNetworkServer.SpawnObjects();をこのメソッドの内側に追加しようとしました。動作しません。

提案がありますか?

答えて

0

恐らくtransform.scale UNETではまだ同期はサポートされていません。これは、1年前にはなかった、それはまだ今:(

である。しかし幸いにも、あなたは[SyncVar attribute]を使用してこの問題を回避することができます。

+0

[OK]を、多くの感謝。 私はそれを信じることができませんでした=) これで、[SyncVar]回避策を使用します。 – An147

関連する問題