예제 #1
0
        void OnClick()
        {
            Debug.Log(string.Format("{0} is clicked", m_ButtonType));

            VRDemoManipulator manipulator = VRDemoManipulator.GetInstance();
            GameObject        player      = manipulator.Player;
            GameObject        camera      = manipulator.Camera;

            if (!player)
            {
                return;
            }

            Vector3 desPos = Vector3.zero;

            switch (m_ButtonType)
            {
            case ResourceUtilities.BUTTONTYPE.FORWARD:
                desPos = player.transform.position + camera.transform.forward * manipulator.moveStep;
                break;

            case ResourceUtilities.BUTTONTYPE.BACKWARD:
                desPos = player.transform.position + -camera.transform.forward * manipulator.moveStep;
                break;

            case ResourceUtilities.BUTTONTYPE.LEFT:
                desPos = player.transform.position + -camera.transform.right * manipulator.moveStep;
                break;

            case ResourceUtilities.BUTTONTYPE.RIGHT:
                desPos = player.transform.position + camera.transform.right * manipulator.moveStep;
                break;

            case ResourceUtilities.BUTTONTYPE.RESET:
                desPos = manipulator.oriPos;
                break;

            default:
                break;
            }

            if (moveTweener != null && moveTweener.IsPlaying())
            {
                moveTweener.Kill();
            }

            //Only move in plane.
            desPos.y    = manipulator.oriPos.y;
            moveTweener = player.transform.DOMove(desPos, manipulator.AnimationTime).SetEase(Ease.OutExpo);
        }
예제 #2
0
        void SetCamerasCullingMask()
        {
            VRDemoManipulator manipulator = VRDemoManipulator.GetInstance();

            if (manipulator)
            {
                if (manipulator.Camera)
                {
                    Camera[] cameras = manipulator.Camera.GetComponentsInChildren <Camera>();
                    for (int i = 0; i < cameras.Length; i++)
                    {
                        if (i == 0)
                        {
                            cameras[i].cullingMask = ~(1 << LayerMask.NameToLayer("Left"));
                        }
                        else
                        {
                            cameras[i].cullingMask = ~(1 << LayerMask.NameToLayer("Right"));
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Awake is called when the script instance is being loaded.
        /// </summary>
        void Awake()
        {
            if (m_CtrlPanel)
            {
                m_CtrlPanel.enabled = false;

                m_CanvasGroup = m_CtrlPanel.GetComponent <CanvasGroup>();
                if (m_CanvasGroup)
                {
                    m_CanvasGroup.alpha = 0;
                }
                else
                {
                    Debug.LogError("VRDemoManipulator Awake canvasGroup is null.");
                }
            }

            if (m_Player)
            {
                oriPos = m_Player.transform.position;
            }

            s_Instance = this;
        }