API.Unity.Behaviour Extensions - JuDelCo/Core GitHub Wiki

Namespace: Ju.Extensions

Behaviour Extensions

You can use these on all classes inherited from Behaviour like MonoBehaviour or UIBehaviour.

Vector3 GetPosition();
Vector3 GetLocalPosition();
Quaternion GetRotation();
Quaternion GetLocalRotation();
Vector3 GetScale();

void EventSubscribe<T>(Action<T> action, bool alwaysActive);
void EventSubscribe<T>(Action<T> action, int priority = 0, bool alwaysActive = false);
void EventSubscribe<T>(Action action, bool alwaysActive);
void EventSubscribe<T>(Action action, int priority = 0, bool alwaysActive = false);
void EventSubscribe<T>(Action<T> action, Func<T, bool> filter, bool alwaysActive);
void EventSubscribe<T>(Action<T> action, Func<T, bool> filter, int priority = 0, bool alwaysActive = false);
void EventSubscribe<T>(Action action, Func<T, bool> filter, bool alwaysActive);
void EventSubscribe<T>(Action action, Func<T, bool> filter, int priority = 0, bool alwaysActive = false);

void EventSubscribe<T>(byte channel, Action<T> action, bool alwaysActive);
void EventSubscribe<T>(byte channel, Action<T> action, int priority = 0, bool alwaysActive = false);
void EventSubscribe<T>(byte channel, Action action, bool alwaysActive);
void EventSubscribe<T>(byte channel, Action action, int priority = 0, bool alwaysActive = false);
void EventSubscribe<T>(byte channel, Action<T> action, Func<T, bool> filter, bool alwaysActive);
void EventSubscribe<T>(byte channel, Action<T> action, Func<T, bool> filter, int priority = 0, bool alwaysActive = false);
void EventSubscribe<T>(byte channel, Action action, Func<T, bool> filter, bool alwaysActive);
void EventSubscribe<T>(byte channel, Action action, Func<T, bool> filter, int priority = 0, bool alwaysActive = false);

Coroutine CoroutineStart(IEnumerator routine, bool alwaysActive = true);

IPromise WaitUntil(Func<bool> condition, bool alwaysActive = false);
IPromise WaitWhile(Func<bool> condition, bool alwaysActive = false);
IPromise WaitForSeconds<T>(float seconds, bool alwaysActive = false) where T : ITimeDeltaEvent;
IPromise WaitForSeconds(float seconds, bool alwaysActive = false);
IPromise WaitForTicks<T>(int ticks, bool alwaysActive = false) where T : ITimeEvent;
IPromise WaitForNextUpdate(bool alwaysActive = false);
IPromise WaitForNextFixedUpdate(bool alwaysActive = false);

IClock NewClock<T>(bool alwaysActive = false) where T : ITimeDeltaEvent;
IClock NewClock<T>(float elapsedSeconds, bool alwaysActive = false) where T : ITimeDeltaEvent;
ITimer NewTimer<T>(float seconds, Action onCompleted, bool alwaysActive = false) where T : ITimeDeltaEvent;
IFrameTimer NewFrameTimer<T>(int frames, Action onCompleted, bool alwaysActive = false) where T : ITimeEvent;

void NodeSubscribe(JNode node, Action<JNode, JNodeEvent> action, bool alwaysActive = false);
void NodeSubscribe(JNode node, JNodeEvent eventFilter, Action<JNode> action, bool alwaysActive = false);
void NodeSubscribe(JNode node, JNodeEvent eventFilter, Action<T> action, bool alwaysActive = false) where T : JNode;
void NodeSubscribe(JNode node, Action action, bool alwaysActive = false);
void NodeSubscribe(JNode node, JNodeEvent eventFilter, Action action, bool alwaysActive = false);
void DataSubscribe<T>(JData<T> node, Action<JData<T>> action, bool alwaysActive = false);
Action<T> DataBind<T>(JData<T> node, Action<JData<T>> action, bool alwaysActive = false);
Action<TRemote> DataBind<T, TRemote>(JData<T> node, Action<JData<T>> action, Func<TRemote, T> converter, bool alwaysActive = false);
⚠️ **GitHub.com Fallback** ⚠️