public override void DestroyState(AttachStrategyState _state) { LineStrategyState state = (LineStrategyState)_state; Destroy(state.lineState.lineRenderer.gameObject); state.lineState.lineRenderer = null; }
public void Attach() { if (isAttached || isAttaching) { return; } if (events.OnWillAttach != null) { events.OnWillAttach.Invoke(new AttachEventInfo(AttachEventType.OnWillAttach, this)); } phase = AttachmentPhase.Attaching; if (strategyState == null) { strategyState = strategy.CreateEmptyState(); } foreach (AttachObject obj in objects) { obj.PrepareForAttach(strategy.GetTransitionerForCategory(obj.category)); } ResolveParams(); foreach (AttachObject obj in objects) { obj.Attach(); } phase = AttachmentPhase.Attached; if (events.OnAttached != null) { events.OnAttached.Invoke(new AttachEventInfo(AttachEventType.OnAttached, this)); } }
void BeginPhaseDetached() { foreach (AttachObject obj in objects) { obj.CleanUp(); } strategy.DestroyState(strategyState); strategyState = null; phase = AttachmentPhase.Detached; isConnected = false; if (events.OnDetached != null) { events.OnDetached.Invoke(new AttachEventInfo(AttachEventType.OnDetached, this)); } }
public virtual void DestroyState(AttachStrategyState state) { }