2015-06-16 2 views
1

Я с головной болью с помощью государственной поддержки синхронизации UNET в Unity3d 5.Наследование вопрос с помощью UNET NetworkBehaviour

Согласно документации 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?

Не experient программист в C#. Факт того, что класс унаследован от другого класса, который наследуется от NetworkBehaviour, не дает мне поддержки для этого?

Just FYI, добавив [SyncVar] на MovingEntity (Это прямое наследование от NetworkBehaviour) работает просто отлично.

Что я делаю неправильно? Есть ли какая-либо хорошая практика в наследовании класса, которую я не делаю в этом примере?

Заранее благодарим за плохой английский.

ответ

2

Возможно, вы забыли добавить директиву, используя в одном из файла:

using UnityEngine.Networking; 

Это не имеет ничего общего с наследованием. Каждый файл C# должен явно указывать используемое им пространство имен. В качестве альтернативы вы можете использовать fully qualified names:

[UnityEngine.Networking.SyncVar] 
Смежные вопросы