コード例 #1
0
        private void OnBrowserHighlight(GameObjectEventArgs browserHighlight)
        {
            Highlightable objHighlight = browserHighlight.GameObject.GetComponent <Highlightable>();

            if (objHighlight != null)
            {
                _cursorDisplay.parent        = browserHighlight.GameObject.transform;
                _cursorDisplay.localPosition = Vector3.zero;
                _isHighlighted = true;
            }
        }
コード例 #2
0
        private void OnBrowserHighlight(GameObjectEventArgs browserHighlight)
        {
            Highlightable objHighlight = browserHighlight.GameObject.GetComponent <Highlightable>();

            if (objHighlight != null)
            {
                _cursorTop.parent        = browserHighlight.GameObject.transform;
                _cursorTop.localPosition = objHighlight.HighlightPoint;
                _isHighlighted           = true;
            }
        }
コード例 #3
0
        public override void OnEnter(CursorStateController controller)
        {
            GameEventLibrary.CursorLockedOnEvent.FireEvent(new GameObjectEventArgs(controller.highlightedObj));
            controller.lockOnCursor.SetActive(true);
            controller.originalCursorTopLocalPos = controller.lockOnCursor.transform.localPosition;
            controller.lockOnCursor.transform.SetParent(controller.highlightedObj.transform);
            Highlightable highlightComponent = controller.highlightedObj.GetComponent <Highlightable>();

            if (controller.highlightedObj != null)
            {
                controller.lockOnCursor.transform.localPosition = highlightComponent.HighlightPoint;
            }
            controller.m_transform.position = new Vector3(controller.highlightedObj.transform.position.x, controller.m_transform.position.y, controller.highlightedObj.transform.position.z);
        }
コード例 #4
0
        private void Scan(CursorStateController controller)
        {
            Collider[] colliders = Physics.OverlapSphere(controller.lastPos, browseRaycastWidth);

            if (colliders.Length == 0)
            {
                if (controller.highlightedObj != null)
                {
                    LostHighlight(controller);
                }
                return;
            }

            float         shortestDistance           = int.MaxValue;
            Highlightable closestHighlightableObject = null;

            foreach (Collider collider in colliders)
            {
                // TODO: Find distance between collider and transform, find closest highlight, go to it instead.
                Highlightable highlightable = collider.gameObject.GetComponent <Highlightable>();
                float         distance      = Vector3.Distance(collider.transform.position, controller.lastPos);
                if (highlightable != null && distance < shortestDistance)
                {
                    closestHighlightableObject = highlightable;
                    shortestDistance           = distance;
                }
            }
            if (closestHighlightableObject != null && closestHighlightableObject.gameObject != controller.highlightedObj)
            {
                GainedHighlight(controller, closestHighlightableObject.gameObject);
            }
            else if (closestHighlightableObject == null && controller.highlightedObj != null)
            {
                LostHighlight(controller);
            }
        }