Что это: NetworkBehaviour / MonoBehaviour компонент для автоматической синхронизации любого поля или свойства любого компонента через Reflection. Поддерживает типы Float, Int, Bool, String, Vector3. Путь: Scripts/Network/Core/NetworkPropertySync.cs, пространство имён Neo.Network.
Как использовать:
- Добавьте
NetworkPropertySyncна объект сNetworkIdentity. - В поле Target Component перетащите компонент, чьё поле нужно синхронизировать.
- В поле Field Name введите имя поля или свойства (регистрозависимое).
- Выберите Value Type (Float / Int / Bool / String / Vector3).
- Выберите Direction (ServerToClients или OwnerToServer).
- Настройте Sync Interval (по умолчанию 0.1s) и Threshold.
| Поле | Тип | Описание |
|---|---|---|
_targetComponent |
Component |
Компонент, чьё поле будет синхронизироваться |
_fieldName |
string |
Имя поля или свойства (public или private) |
_valueType |
SyncValueType |
Тип данных: Float, Int, Bool, String, Vector3 |
_direction |
SyncPropertyDirection |
ServerToClients — сервер пишет, клиенты читают. OwnerToServer — владелец пишет, сервер раздаёт |
_syncInterval |
float |
Интервал проверки изменений (секунды, по умолчанию 0.1) |
_threshold |
float |
Минимальное изменение для синхронизации (для Float/Int/Vector3, по умолчанию 0.01) |
| Событие | Тип | Описание |
|---|---|---|
onValueChanged |
UnityEvent |
Вызывается когда синхронизированное значение изменилось на этом клиенте |
Компонент использует [SyncVar] для каждого типа данных. Новые клиенты автоматически получают актуальное значение через OnStartClient.
GameObject: Enemy
├── HealthComponent (_currentHp : float)
├── NetworkPropertySync
│ ├── Target: HealthComponent
│ ├── Field: _currentHp
│ ├── Type: Float
│ ├── Direction: ServerToClients
│ └── Interval: 0.05s
└── NetworkIdentity
GameObject: GameState
├── StateMachine (currentStateIndex : int)
├── NetworkPropertySync
│ ├── Target: StateMachine
│ ├── Field: currentStateIndex
│ ├── Type: Int
│ └── Direction: ServerToClients
└── NetworkIdentity
GameObject: Player
├── PlayerProfile (DisplayName : string)
├── NetworkPropertySync
│ ├── Target: PlayerProfile
│ ├── Field: DisplayName
│ ├── Type: String
│ └── Direction: OwnerToServer
└── NetworkIdentity
- NetworkActionRelay — синхронизация действий (событий)
- NeoNetworkComponent — базовый класс
- NoCode Network Spec — Правило 10