/// <summary> /// Called when the core has finished running and is released /// </summary> /// <param name="rCore"></param> private void OnCoreReleased(ILifeCore rCore, object rUserData = null) { if (mSelectorCore != null) { mSelectorCore.Owner = null; mSelectorCore.InputSource = null; mSelectorCore.OnSelectedEvent = null; mSelectorCore.OnReleasedEvent = null; mSelectorCore = null; } // If our state isn't set to succes (meaning we have something) // we are going to flag this node as a failure if (State != EnumSpellActionState.SUCCEEDED) { State = EnumSpellActionState.FAILED; } base.Deactivate(); }
/// <summary> /// Called when the action is first activated /// <param name="rPreviousSpellActionState">State of the action prior to this one activating</param> public override void Activate(int rPreviousSpellActionState = -1, object rData = null) { // Ensure we don't parent to the target ParentToTarget = false; // Grab an instance from the pool base.Activate(rPreviousSpellActionState, rData); // Set the material if (mInstances != null && mInstances.Count > 0) { mSelectorCore = mInstances[0].GetComponent <SelectTargetCore>(); if (mSelectorCore != null) { mSelectorCore.Age = 0f; mSelectorCore.MaxAge = 0f; mSelectorCore.Prefab = _Prefab; mSelectorCore.Owner = _Spell.Owner; mSelectorCore.InputSource = _Spell.SpellInventory._InputSource; mSelectorCore.MinDistance = MinDistance; mSelectorCore.MaxDistance = MaxDistance; mSelectorCore.UseMouse = UseMouse; mSelectorCore.ContinuousSelect = ContinuousSelect; mSelectorCore.CollisionLayers = CollisionLayers; mSelectorCore.Tags = Tags; mSelectorCore.ActionAlias = ActionAlias; mSelectorCore.CancelActionAlias = CancelActionAlias; mSelectorCore.RequiresRigidbody = RequiresRigidbody; mSelectorCore.RequiresActorCore = RequiresActorCore; mSelectorCore.RequiresCombatant = RequiresCombatant; mSelectorCore.OnSelectedEvent = OnSelected; mSelectorCore.OnCancelledEvent = OnCancelled; mSelectorCore.OnReleasedEvent = OnCoreReleased; mSelectorCore.Play(); } } else { Deactivate(); } }
/// <summary> /// Called when the object is selected in the editor /// </summary> private void OnEnable() { // Grab the serialized objects mTarget = (SelectTargetCore)target; mTargetSO = new SerializedObject(target); }