/// <summary> /// Called when the parent is enabled. /// </summary> protected override void OnEnable(HydraMonoBehaviour parent) { if (m_Points == null) m_Points = new BezierPointAttribute[0]; base.OnEnable(parent); }
/// <summary> /// Creates the instance. /// </summary> /// <returns>The instance.</returns> /// <param name="parent">Parent.</param> /// <typeparam name="T">The instance type.</typeparam> public static T CreateInstance <T>(HydraMonoBehaviour parent) where T : HydraMonoBehaviourChild, new() { T output = new T(); output.Enable(parent); return(output); }
/// <summary> /// Processes the message. /// </summary> /// <param name="children">Children.</param> /// <param name="parent">Parent.</param> /// <param name="message">Message.</param> public static void ProcessMessage(List <HydraMonoBehaviourChild> children, HydraMonoBehaviour parent, Message message) { for (int index = 0; index < children.Count; index++) { HydraMonoBehaviourChild child = children[index]; if (child == null) { continue; } switch (message) { case Message.OnUpdate: child.Update(parent); break; case Message.OnDestroy: child.Destroy(parent); break; case Message.OnDisable: child.Disable(parent); break; case Message.OnEnable: child.Enable(parent); break; case Message.OnReset: child.Reset(parent); break; default: throw new ArgumentOutOfRangeException(); } } }
/// <summary> /// Called when the object is loaded. /// </summary> protected override void OnEnable(HydraMonoBehaviour parent) { base.OnEnable(parent); InstantiateChild(); }
/// <summary> /// Called when the parent updates. /// </summary> /// <param name="parent">Parent.</param> protected override void OnUpdate(HydraMonoBehaviour parent) { base.OnUpdate(parent); SetLayer(parent.gameObject.layer); }
/// <summary> /// Called when the object goes out of scope. /// </summary> protected override void OnDisable(HydraMonoBehaviour parent) { Unsubscribe(m_EventHelper); base.OnDisable(parent); }
/// <summary> /// Unsubscribe from the specified eventHelper. /// </summary> /// <param name="eventHelper">Event helper.</param> private void Unsubscribe(HydraMonoBehaviour eventHelper) { if (eventHelper == null) return; eventHelper.onWillRenderObjectCallback -= OnChildWillRenderObject; }
/// <summary> /// Called when the parent is about to be destroyed. /// </summary> protected virtual void OnDestroy(HydraMonoBehaviour parent) { ProcessMessage(parent, Message.OnDestroy); }
/// <summary> /// Called to reset the instance to default values. /// </summary> protected virtual void OnReset(HydraMonoBehaviour parent) { ProcessMessage(parent, Message.OnReset); }
/// <summary> /// Calls OnDestroy(). /// </summary> /// <param name="parent">Parent.</param> public void Destroy(HydraMonoBehaviour parent) { OnDestroy(parent); }
/// <summary> /// Calls OnDisable(). /// </summary> /// <param name="parent">Parent.</param> public void Disable(HydraMonoBehaviour parent) { OnDisable(parent); }
/// <summary> /// Calls OnEnable(). /// </summary> /// <param name="parent">Parent.</param> public void Enable(HydraMonoBehaviour parent) { OnEnable(parent); }
/// <summary> /// Calls OnReset(). /// </summary> /// <param name="parent">Parent.</param> public void Reset(HydraMonoBehaviour parent) { OnReset(parent); }
/// <summary> /// Calls OnUpdate(). /// </summary> /// <param name="parent">Parent.</param> public void Update(HydraMonoBehaviour parent) { OnUpdate(parent); }
/// <summary> /// Called when the object is about to be destroyed. /// </summary> protected override void OnDestroy(HydraMonoBehaviour parent) { base.OnDestroy(parent); DestroyChild(); }
/// <summary> /// Called when the parent updates. /// </summary> protected virtual void OnUpdate(HydraMonoBehaviour parent) { ProcessMessage(parent, Message.OnUpdate); }
/// <summary> /// Processes the message. /// </summary> /// <param name="message">Message.</param> private void ProcessMessage(HydraMonoBehaviour parent, Message message) { ProcessMessage(GetMonoBehaviourChildren(), parent, message); }