private void CancelInteractions() { if (LastHitComponent && LastHitComponent.GetComponent <IMorphInteractiveComponent>() != null) { //Unfocus IMorphComponentFocus focus = LastHitComponent?.GetComponent <IMorphComponentFocus>(); if (focus != null && focus.IsFocused) { focus.Unfocus(); } //Deselect IMorphComponentSelect select = LastHitComponent?.GetComponent <IMorphComponentSelect>(); if (select != null && select.IsSelected) { select.Deselect(); } //Release IMorphComponentGrab grab = LastHitComponent?.GetComponent <IMorphComponentGrab>(); if (grab != null && grab.IsGrabbed) { grab.Release(); } } }
public override void Visit(IMorphComponentFocus visitable) { base.Visit(visitable); GameObject componentGameObject = (visitable as Component)?.gameObject; if (!componentGameObject) { return; } TMorphComponentFocusWithEventTrigger focusWithEventTrigger = componentGameObject.GetComponent <TMorphComponentFocusWithEventTrigger>(); if (!focusWithEventTrigger) { componentGameObject.AddComponent <TMorphComponentFocusWithEventTrigger>(); } }
public virtual void Visit(IMorphComponentFocus focus) { }