Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

SyncEventAttribute

class in UnityEngine.Networking

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство

Описание

This is an attribute that can be put on events in NetworkBehaviour classes to allow them to be invoked on the client when the event is called on the server.

[SyncEvent] events are called by user code on UNET servers, and then invoked on corresponding client objects on clients connected to the server. The arguments to the Event call are seriialized across the network, so that the client event is invoked with the same values as the function on the server. These events must begin with the prefix "Event".

no example available in JavaScript
using UnityEngine;
using UnityEngine.Networking;

public class DamageClass : NetworkBehaviour { public delegate void TakeDamageDelegate(int amount, float dir);

[SyncEvent] public event TakeDamageDelegate EventTakeDamage; [Command] public void CmdDoMe(int val) { EventTakeDamage(val, 1.0f); } }

public class Other : NetworkBehaviour { public DamageClass damager; int health = 100; void Start() { if (NetworkClient.active) { damager.EventTakeDamage += TakeDamage; } } public void TakeDamage(int amount, float dir) { health -= amount; } }

SyncEvents allow networked actions to be propagated to other scripts attached to the object. In the example above, the Other class registers for the TakeDamage event on the DamageClass. When the event happens on the DamageClass on the server, the TakeDamage() method will be invoked on the Other class on the client object. This allows modular network aware systems to be created, that can be extended by new scripts that respond to the events generated by them.

Переменные

channelThe UNET QoS channel that this event should be sent on.