Ejemplo n.º 1
0
        /// <summary>
        /// 刷新助手
        /// </summary>
        public void OnRefresh()
        {
            _mouseRay.OnRefresh();
            switch (TheControlMode)
            {
            case ControlMode.FreeControl:
                _mousePosition.OnRefresh();
                _mouseRotation.OnRefresh();
                break;
            }

            if (Main.m_Input.GetButtonDown(InputButtonType.MouseLeft))
            {
                if (RayTarget != null)
                {
                    if (_mouseClickTargets.ContainsKey(RayTarget))
                    {
                        _mouseClickTargets[RayTarget]?.Invoke();
                    }
                }
            }
            if (Main.m_Input.GetButtonDown(InputButtonType.MouseLeftDoubleClick))
            {
                if (RayTarget != null)
                {
                    MouseRayTarget target = RayTarget as MouseRayTarget;
                    if (target && target.IsDoubleClickFocus)
                    {
                        SetLookPoint(target.transform.position);
                    }
                }
            }
        }
        /// <summary>
        /// 刷新助手
        /// </summary>
        public void OnRefresh()
        {
            _mouseRay.OnRefresh();
            if (Mode == ControlMode.FreeControl)
            {
                _mousePosition.OnRefresh();
                _mouseRotation.OnRefresh();
            }

            if (Main.m_Input.GetButtonDown(InputButtonType.MouseLeft))
            {
                if (RayTarget != null)
                {
                    RayTarget.OnMouseClick.Invoke();
                }
            }
            if (Main.m_Input.GetButtonDown(InputButtonType.MouseLeftDoubleClick))
            {
                if (RayTarget != null)
                {
                    MouseRayTarget target = RayTarget as MouseRayTarget;
                    if (target && target.IsDoubleClickFocus)
                    {
                        SetLookPoint(target.transform.position);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 射线击中目标
        /// </summary>
        private void RaycastHiting(MouseRayTarget target)
        {
            if (Target == target)
            {
                return;
            }

            if (Target)
            {
                switch (TriggerHighlighting)
                {
                case HighlightingType.Normal:
                    Target.gameObject.CloseHighLight(true);
                    break;

                case HighlightingType.Flash:
                    Target.gameObject.CloseFlashHighLight(true);
                    break;
                }
                Target = null;
            }

            Target = target;
            if (Target)
            {
                switch (TriggerHighlighting)
                {
                case HighlightingType.Normal:
                    Target.gameObject.OpenHighLight(NormalColor);
                    break;

                case HighlightingType.Flash:
                    Target.gameObject.OpenFlashHighLight(FlashColor1, FlashColor2);
                    break;
                }

                if (IsOpenPrompt)
                {
                    if (RayHitImage && RayHitText)
                    {
                        RayHitImage.gameObject.SetActive(true);
                        RayHitText.text = Target.Name;
                    }
                }
            }
            else
            {
                if (IsOpenPrompt)
                {
                    if (RayHitImage && RayHitText)
                    {
                        RayHitImage.gameObject.SetActive(false);
                        RayHitText.text = "";
                    }
                }
            }
        }
Ejemplo n.º 4
0
        private static void SetMouseRayTarget()
        {
            AddBoundsBoxCollider();

            GameObject[] objs = Selection.gameObjects;
            for (int i = 0; i < objs.Length; i++)
            {
                Collider collider = objs[i].GetComponent <Collider>();
                if (!collider)
                {
                    collider = objs[i].AddComponent <BoxCollider>();
                }
                collider.isTrigger = true;

                MouseRayTarget rayTarget = objs[i].GetComponent <MouseRayTarget>();
                if (!rayTarget)
                {
                    rayTarget = objs[i].AddComponent <MouseRayTarget>();
                }
                rayTarget.Name = objs[i].name;
            }
        }