Объявление
public void SendMessageUpwards(string methodName, SendMessageOptions options);public void SendMessageUpwards(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);
Параметры
methodName | Имя вызываемого метода. |
value | Необязательное значение параметра для метода. |
options | Должна ли возникать ошибка, если метод не существует для целевого объекта? |
Описание
Вызывает метод с именем methodName
для каждого MonoBehaviour в этом игровом объекте и для каждого предка поведения.
Принимающий метод может игнорировать аргумент, не имея аргументов.
Если для параметра options
установлено значение SendMessageOptions.RequireReceiver, выводится ошибка, когда сообщение не принимается ни одним компонентом. . Обратите внимание, что сообщения не будут отправляться неактивным объектам (то есть тем, которые были деактивированы в редакторе или с помощью функции GameObject.SetActive).
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
/// Calls the function ApplyDamage with a value of 5
SendMessageUpwards("ApplyDamage", 5.0);
}
// Every script attached to this game object and any ancestor
// that has a ApplyDamage function will be called.
void ApplyDamage(float damage)
{
print(damage);
}
}