示例#1
0
        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();
                }
            }
        }
示例#2
0
        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>();
            }
        }
示例#3
0
 public virtual void Visit(IMorphComponentFocus focus)
 {
 }