SendEvent
Use this method to send a custom named event.
Read time 5 minutesLast updated 6 days ago
Definition
- Type: Method
- Namespace: UnityEngine.VFX
- Assembly: UnityEngine.VFXModule
SendEvent(int, VFXEventAttribute)
Use this method to send a custom named event.
public void SendEvent(int eventNameID, VFXEventAttribute eventAttribute)
Parameters
The ID of the event. This is the same ID that Shader.PropertyToID returns.
Can be null or a VFXEventAttribute. To create a VFXEventAttribute, use VisualEffect.CreateVFXEventAttribute.
Examples
// The following example triggers the default visual effect play event once every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; m_VisualEffect.SendEvent(VisualEffectAsset.PlayEventID); } } }}
// The following example triggers multiple events during the same frame every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private int m_SpawnCountIdentifier; private int m_ColorIdentifier; private int m_EventNameIdentifier; private void Start() { m_SpawnCountIdentifier = Shader.PropertyToID("spawnCount"); m_ColorIdentifier = Shader.PropertyToID("color"); m_EventNameIdentifier = Shader.PropertyToID("direct"); } private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; var eventAttribute = m_VisualEffect.CreateVFXEventAttribute(); // Red eventAttribute.SetFloat(m_SpawnCountIdentifier, 1); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(1, 0, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Blue eventAttribute.SetFloat(m_SpawnCountIdentifier, 3); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 0, 1)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Green eventAttribute.SetFloat(m_SpawnCountIdentifier, 2); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 1, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); } } }}
SendEvent(string, VFXEventAttribute)
Use this method to send a custom named event.
public void SendEvent(string eventName, VFXEventAttribute eventAttribute)
Parameters
The name of the event.
Can be null or a VFXEventAttribute. To create a VFXEventAttribute, use VisualEffect.CreateVFXEventAttribute.
Examples
// The following example triggers the default visual effect play event once every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; m_VisualEffect.SendEvent(VisualEffectAsset.PlayEventID); } } }}
// The following example triggers multiple events during the same frame every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private int m_SpawnCountIdentifier; private int m_ColorIdentifier; private int m_EventNameIdentifier; private void Start() { m_SpawnCountIdentifier = Shader.PropertyToID("spawnCount"); m_ColorIdentifier = Shader.PropertyToID("color"); m_EventNameIdentifier = Shader.PropertyToID("direct"); } private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; var eventAttribute = m_VisualEffect.CreateVFXEventAttribute(); // Red eventAttribute.SetFloat(m_SpawnCountIdentifier, 1); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(1, 0, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Blue eventAttribute.SetFloat(m_SpawnCountIdentifier, 3); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 0, 1)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Green eventAttribute.SetFloat(m_SpawnCountIdentifier, 2); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 1, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); } } }}
SendEvent(int)
Use this method to send a custom named event.
public void SendEvent(int eventNameID)
Parameters
The ID of the event. This is the same ID that Shader.PropertyToID returns.
Examples
// The following example triggers the default visual effect play event once every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; m_VisualEffect.SendEvent(VisualEffectAsset.PlayEventID); } } }}
// The following example triggers multiple events during the same frame every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private int m_SpawnCountIdentifier; private int m_ColorIdentifier; private int m_EventNameIdentifier; private void Start() { m_SpawnCountIdentifier = Shader.PropertyToID("spawnCount"); m_ColorIdentifier = Shader.PropertyToID("color"); m_EventNameIdentifier = Shader.PropertyToID("direct"); } private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; var eventAttribute = m_VisualEffect.CreateVFXEventAttribute(); // Red eventAttribute.SetFloat(m_SpawnCountIdentifier, 1); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(1, 0, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Blue eventAttribute.SetFloat(m_SpawnCountIdentifier, 3); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 0, 1)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Green eventAttribute.SetFloat(m_SpawnCountIdentifier, 2); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 1, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); } } }}
SendEvent(string)
Use this method to send a custom named event.
public void SendEvent(string eventName)
Parameters
The name of the event.
Examples
// The following example triggers the default visual effect play event once every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; m_VisualEffect.SendEvent(VisualEffectAsset.PlayEventID); } } }}
// The following example triggers multiple events during the same frame every second.using UnityEngine;using UnityEngine.VFX;public class SendEventExample : MonoBehaviour{ public VisualEffect m_VisualEffect; private float m_Waiting = 1.0f; private int m_SpawnCountIdentifier; private int m_ColorIdentifier; private int m_EventNameIdentifier; private void Start() { m_SpawnCountIdentifier = Shader.PropertyToID("spawnCount"); m_ColorIdentifier = Shader.PropertyToID("color"); m_EventNameIdentifier = Shader.PropertyToID("direct"); } private void Update() { if (m_VisualEffect) { m_Waiting -= Time.deltaTime; if (m_Waiting < 0.0f) { m_Waiting = 1.0f; var eventAttribute = m_VisualEffect.CreateVFXEventAttribute(); // Red eventAttribute.SetFloat(m_SpawnCountIdentifier, 1); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(1, 0, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Blue eventAttribute.SetFloat(m_SpawnCountIdentifier, 3); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 0, 1)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); // Green eventAttribute.SetFloat(m_SpawnCountIdentifier, 2); eventAttribute.SetVector3(m_ColorIdentifier, new Vector3(0, 1, 0)); m_VisualEffect.SendEvent(m_EventNameIdentifier, eventAttribute); } } }}