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(IMorphComponentSelect visitable) { base.Visit(visitable); GameObject componentGameObject = (visitable as Component)?.gameObject; if (!componentGameObject) { return; } TMorphComponentSelectWithEventTrigger selectWithEventTrigger = componentGameObject.GetComponent <TMorphComponentSelectWithEventTrigger>(); if (!selectWithEventTrigger) { selectWithEventTrigger = componentGameObject.AddComponent <TMorphComponentSelectWithEventTrigger>(); } selectWithEventTrigger.SelectValidation = SelectValidation; selectWithEventTrigger.DeselectValidation = DeselectValidation; }
protected void ListenTouchpadClicked(object sender, bool clicked) { if (!LastHitComponent || LastHitComponent.GetComponent <IMorphInteractiveComponent>() == null) { return; } //Select IMorphComponentSelect select = LastHitComponent.GetComponent <IMorphComponentSelect>(); if (select == null) { return; } if (clicked && !select.IsSelected) { select.Select(); } else if (!clicked && select.IsSelected) { select.Deselect(); } }
public virtual void Visit(IMorphComponentSelect select) { }