1

Unity3d 5 の UNET の State Synchronization サポートを使用して頭が痛いです。

ドキュメントhttp://docs.unity3d.com/Manual/UNetStateSync.htmlによると、 クラスはNetworkBehaviourから継承する必要があります。さて、私はそのようにしています:

class Player : Character
abstract class Character : MovingEntity
abstract class MovingEntity : NetworkBehaviour

ここで、カスタム属性Characterを使用してすべてのプレーヤー データを保存しています。[SyncVar]このような:

public abstract class Character : MovingEntity
{
    [SyncVar]
    public string name;
}

しかし、インスペクターで次のエラーが表示されます。

The type or namespace name `SyncVar' could not be found. Are you missing a using directive or an assembly reference?

The type or namespace name `SyncVarAttribute' could not be found. Are you missing a using directive or an assembly reference?

C# の経験豊富なプログラマーではありません。クラスが継承元の別のクラスから継承されているという事実は、それNetworkBehaviourを行うためのサポートを私に与えませんか?

[SyncVar]参考までに、 MovingEntity(That direct inherits from )を追加するNetworkBehaviourと問題なく動作します。

私が間違っていることは何ですか?この例で私が行っていない、クラス継承の良い習慣はありますか?

事前に感謝し、英語が下手で申し訳ありません。

4

2 に答える 2

2

ファイルの 1 つに using ディレクティブを追加するのを忘れている可能性があります。

using UnityEngine.Networking;

これは継承とは関係ありません。各 C# ファイルは、使用している名前空間を明示的に記述する必要があります。または、完全修飾名を使用できます。

[UnityEngine.Networking.SyncVar]
于 2015-06-16T15:27:43.603 に答える