Hello,
does anyone know how to enable/disable an Event in an EventTrigger ? In the Editor you can switch an event to Off/Runtime-Only/runtime+editor - but i haven’t found a way how to disable an event inside an EventTrigger by script. Does anyone know how to do that ?
I know i can remove them from the EvenTrigger.delegates List but since there is a property in the Editor i was wondering if there is a better method, or if i’m unaware of some sort of class that controls the activity on those event entries.
Thanks!
Here’s an example:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class SomeClass:MonoBehaviour{
void Start(){
SetEventTriggerState(SomeObjectThatHasEvenTrigger.gameObject.GetComponent<EventTrigger>(), EventTriggerType.PointerUp, "MethodnameToSetState", UnityEventCallState.Off);
}
void SetEventTriggerState(EventTrigger ET, EventTriggerType ETType, string MethodName, UnityEventCallState NewState){
for (int i=0; i<ET.triggers.Count; i++) {
EventTrigger.Entry Trigger=ET.triggers*;*
_ Debug.Log(" Triggers "+Trigger);_
* Debug.Log(" eventID "+Trigger.eventID);*
* EventTrigger.TriggerEvent CB=Trigger.callback;*
* Debug.Log(" callback "+CB);*
* for (int j=0; j<CB.GetPersistentEventCount(); j++) {*
* Debug.Log(" “+CB.GetPersistentMethodName(j)+” “+CB.GetPersistentTarget(j)+” "+Trigger.eventID);*
* if (CB.GetPersistentMethodName(j)==MethodName && Trigger.eventID==ETType){*
* Debug.Log("Set State to "+NewState);*
* CB.SetPersistentListenerState(j, NewState);*
* }*
* }*
* }*
* }*
}
Maybe using…
.GetComponent<Image>().raycastTarget =
It worked for me.