Я пытаюсь синхронизировать цвет своего куба с моего сценария сервера. У меня есть компонент Network Transform и Network Identity, и преобразование синхронизации работает хорошо, теперь мне нужно будет синхронизировать цвет. Мне нужно что-то вроде компонента «Сетевой материал» или как мне это сделать? Спасибо :) (я надеюсь, что вы получили то, что я имею в виду, извините за английский.)Unity 5 network color sync
2
A
ответ
1
Вы можете синхронизировать значения с помощью атрибута SyncVar:
[SyncVar]
Color myColor;
Это позволит сохранить изменения синхронизирована на клиентах и сервере. Но это всего лишь поле в вашем классе цветового типа, оно фактически не изменяет цвет вашего рендера.
Вы можете изменить цвет вашего рендера на значение myColor
в обратном вызове Update, но оно обновит его, даже если цвет не изменится.
Наилучший подход будет использовать крюк:
[SyncVar (hook = "OnColorChanged")]
Color myColor;
Это называют «OnColorChanged» функцию каждый раз, когда цвет обновляется.
Что-то, как это должно работать (если вы работаете с SpriteRenders):
[SyncVar (hook = "OnColorChanged")]
Color myColor;
void OnColorChanged(Color value)
{
myColor = value;
GetComponent<SpriteRenderer>().color = myColor;
}
Смежные вопросы
- 1. Unity: Network Multiplayer
- 2. Unity gradient color fade
- 3. back color Unity
- 4. Unity Custom Font Texture Color
- 5. Уже используется порт прослушивания? Unity network error
- 6. Проблема Unity Network ClientRpc. Не синхронизирует
- 7. HTML 5 File Reader Sync
- 8. сборки в Unity 5
- 9. .rigidbody in Unity 5
- 10. Unity 5 GameObject сериализация
- 11. Видео текстуры Unity 5
- 12. Unity 5 Fixed Update
- 13. Графика в Unity 5
- 14. Unity 5, destroy (game.Object)
- 15. Unity 5 и NetworkManager
- 16. Unity 5 import package
- 17. Обновление старого кода Unity до Unity 5
- 18. docker comp link linking network network
- 19. Laravel 5 Sync Two or More Models
- 20. Laravel 5 условный много-много sync()
- 21. Unity 5 двусторонняя ткань ткани
- 22. Unity 5 Chartboost Черный экран
- 23. Награжденные видеообъявления Chartboost - Unity 5
- 24. Unity 5 - Physics.OverlapSphere не работает
- 25. Unity 5 Audio Volume Slider
- 26. Unity 5 Как запустить пулю
- 27. Использование Octodiff с Unity 5
- 28. Лестничная ошибка в Unity 5
- 29. Unity 5 Disable GUI Element
- 30. Анимация не работает Unity 5
Спасибо за ваш ответ, поэтому я добавил этот код в мой клиент и сетевой сценарий, но я получаю эту ошибку теперь: ошибка UNetWeaver: скрипт UnityEngine.Networking.ConnectClient использует [SyncVar] myColor, но не является NetworkBehaviour. – sudoman281
При объявлении класса он обычно происходит от MonoBehaviour, но для работы SyncVar он должен быть получен из NetworkBehaviour. Измените объявление класса из 'public Class myClass: MonoBehaviour' на' public Class myClass: NetworkBehaviour' – Leo
Спасибо, изменив MonoBehaviour на Network, разрешил ошибку. Но мой куб не меняет цвет. Мой код: http://pastebin.com/TAStVciy – sudoman281