コード例 #1
0
        // -------------------------------------------

        /*
         * RotateCamera
         */
        private void RotateCamera()
        {
            RotationAxes axes = RotationAxes.None;

            if ((Input.GetAxis("Mouse X") != 0) || (Input.GetAxis("Mouse Y") != 0))
            {
                axes = RotationAxes.MouseXAndY;
            }

            if ((axes != RotationAxes.Controller) && (axes != RotationAxes.None))
            {
                if (axes == RotationAxes.MouseXAndY)
                {
                    float rotationX = CameraLocal.localEulerAngles.y + Input.GetAxis("Mouse X") * SensitivityX;

                    m_rotationY += Input.GetAxis("Mouse Y") * SensitivityY;
                    m_rotationY  = Mathf.Clamp(m_rotationY, MinimumY, MaximumY);

                    CameraLocal.localEulerAngles = new Vector3(-m_rotationY, rotationX, 0);
                }
                else if (axes == RotationAxes.MouseX)
                {
                    CameraLocal.Rotate(0, Input.GetAxis("Mouse X") * SensitivityX, 0);
                }
                else
                {
                    m_rotationY += Input.GetAxis("Mouse Y") * SensitivityY;
                    m_rotationY  = Mathf.Clamp(m_rotationY, MinimumY, MaximumY);

                    CameraLocal.localEulerAngles = new Vector3(-m_rotationY, transform.localEulerAngles.y, 0);
                }
            }
        }
コード例 #2
0
        Vector3 GetRotationAxis(RotationAxes axisOfRotation)
        {
            switch (axisOfRotation)
            {
            case RotationAxes.right:
                return(transform.parent.TransformDirection(Vector3.right));

            case RotationAxes.left:
                return(transform.parent.TransformDirection(Vector3.left));

            case RotationAxes.up:
                return(transform.parent.TransformDirection(Vector3.up));

            case RotationAxes.down:
                return(transform.parent.TransformDirection(Vector3.down));

            case RotationAxes.forward:
                return(transform.parent.TransformDirection(Vector3.back));

            case RotationAxes.back:
                return(transform.parent.TransformDirection(Vector3.forward));

            default:
                Debug.LogError("Unreachable");
                return(Vector3.zero);
            }
        }
コード例 #3
0
 void SetAxisOfRotationBasedOnPlayerPosition(Vector3 playerPos)
 {
     if (GetPlayerLerpPosition(playerPos) > 0.5)
     {
         // Swap right/left, up/down, or forward/back
         localAxisOfRotation = (RotationAxes)((((int)localAxisOfRotation % 2) * -2 + 1) + (int)localAxisOfRotation);
     }
 }
コード例 #4
0
 private void Start()
 {
     axes            = RotationAxes.MouseXAndY;
     sensitivityHor  = GameManager.Instance.sensitivityHor;
     sensitivityVert = GameManager.Instance.sensitivityVert;
     minimumVert     = GameManager.Instance.minimumVert;
     maximumVert     = GameManager.Instance.maximumVert;
 }
コード例 #5
0
ファイル: ViewControl.cs プロジェクト: shafer-hess/buildr
 public void lockRota()
 {
     if (axes == RotationAxes.locked)
     {
         axes = RotationAxes.MouseXAndY;
     }
     else
     {
         axes = RotationAxes.locked;
     }
 }
コード例 #6
0
 public override void Reset()
 {
     gameObject   = null;
     axes         = RotationAxes.MouseXAndY;
     sensitivityX = 15f;
     sensitivityY = 15f;
     minimumX     = -360f;
     maximumX     = 360f;
     minimumY     = -60f;
     maximumY     = 60f;
     everyFrame   = true;
 }
コード例 #7
0
		public override void Reset()
		{
			gameObject = null;
			axes = RotationAxes.MouseXAndY;
			sensitivityX = 15f;
			sensitivityY = 15f;
			minimumX = -360f;
			maximumX = 360f;
			minimumY = -60f;
			maximumY = 60f;
			everyFrame = true;
		}
コード例 #8
0
ファイル: MouseLook.cs プロジェクト: OmegaDEVAU/Simulator
		public override void Reset()
		{
			gameObject = null;
			axes = RotationAxes.MouseXAndY;
			sensitivityX = 15f;
			sensitivityY = 15f;
			minimumX = new FsmFloat {UseVariable = true};
            maximumX = new FsmFloat { UseVariable = true };
			minimumY = -60f;
			maximumY = 60f;
			everyFrame = true;
		}
コード例 #9
0
        // -------------------------------------------

        /*
         * We will apply the movement to the camera
         */
        private void MoveCameraWithMouse()
        {
            if (YourVRUIScreenController.Instance.BlockMouseMovement)
            {
                return;
            }

            m_axes = RotationAxes.None;

            // USE ARROW KEYS TO MOVE
#if UNITY_EDITOR || UNITY_STANDALONE_WIN
            if (m_characterController != null)
            {
                Vector3 forward = Input.GetAxis("Vertical") * transform.TransformDirection(YourVRUIScreenController.Instance.GameCamera.transform.forward) * MoveSpeed;
                m_characterController.Move(forward * Time.deltaTime);
                m_characterController.SimpleMove(Physics.gravity);
            }
#endif

            if ((Input.GetAxis("Mouse X") != 0) || (Input.GetAxis("Mouse Y") != 0))
            {
                m_axes = RotationAxes.MouseXAndY;
            }

            // USE MOUSE TO ROTATE VIEW
            if ((m_axes != RotationAxes.Controller) && (m_axes != RotationAxes.None))
            {
                if (m_axes == RotationAxes.MouseXAndY)
                {
                    float rotationX = YourVRUIScreenController.Instance.GameCamera.transform.localEulerAngles.y + Input.GetAxis("Mouse X") * m_sensitivityX;

                    m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                    m_rotationY  = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);

                    YourVRUIScreenController.Instance.GameCamera.transform.localEulerAngles = new Vector3(-m_rotationY, rotationX, 0);
                }
                else if (m_axes == RotationAxes.MouseX)
                {
                    YourVRUIScreenController.Instance.GameCamera.transform.Rotate(0, Input.GetAxis("Mouse X") * m_sensitivityX, 0);
                }
                else
                {
                    m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                    m_rotationY  = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);

                    YourVRUIScreenController.Instance.GameCamera.transform.localEulerAngles = new Vector3(-m_rotationY, transform.localEulerAngles.y, 0);
                }
            }
        }
コード例 #10
0
ファイル: MouseLook.cs プロジェクト: Gunnza/Flappy-Bird
 public override void Reset()
 {
     gameObject   = null;
     axes         = RotationAxes.MouseXAndY;
     sensitivityX = 15f;
     sensitivityY = 15f;
     minimumX     = new FsmFloat {
         UseVariable = true
     };
     maximumX = new FsmFloat {
         UseVariable = true
     };
     minimumY   = -60f;
     maximumY   = 60f;
     everyFrame = true;
 }
コード例 #11
0
        // -------------------------------------------

        /*
         * We will apply the movement to the camera
         */
        private void MoveCameraWithMouse()
        {
#if UNITY_EDITOR || UNITY_STANDALONE_WIN
            if (YourVRUIScreenController.Instance.BlockMouseMovement)
            {
                return;
            }

            m_axes = RotationAxes.None;

            if ((Input.GetAxis("Mouse X") != 0) || (Input.GetAxis("Mouse Y") != 0))
            {
                m_axes = RotationAxes.MouseXAndY;
            }

            // USE MOUSE TO ROTATE VIEW
            if ((m_axes != RotationAxes.Controller) && (m_axes != RotationAxes.None))
            {
                if (m_axes == RotationAxes.MouseXAndY)
                {
                    float rotationX = YourVRUIScreenController.Instance.GameCamera.transform.localEulerAngles.y + Input.GetAxis("Mouse X") * m_sensitivityX;

                    m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                    m_rotationY  = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);

                    YourVRUIScreenController.Instance.GameCamera.transform.localEulerAngles = new Vector3(-m_rotationY, rotationX, 0);
                }
                else if (m_axes == RotationAxes.MouseX)
                {
                    YourVRUIScreenController.Instance.GameCamera.transform.Rotate(0, Input.GetAxis("Mouse X") * m_sensitivityX, 0);
                }
                else
                {
                    m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                    m_rotationY  = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);

                    YourVRUIScreenController.Instance.GameCamera.transform.localEulerAngles = new Vector3(-m_rotationY, transform.localEulerAngles.y, 0);
                }
            }
#else
            GyroModifyCamera();
#endif
        }
コード例 #12
0
ファイル: PlayerController.cs プロジェクト: swrn365/Duel-Off
    void onPause()
    {
        // Disable Pause in Reload Mode
        // Bugfix hack: Pause does not release in Reload Menu.
        if (GameState == _GameState.Reload)
        {
            UnityEngine.Debug.Log("PlayerController.cs: Bypass Pause in Reload Menu");
            return;
        }

        if (Time.timeScale == 1)
        {
            _cachedAxes      = axes;
            _cachedGameState = GameState;

            axes      = RotationAxes.None;
            GameState = _GameState.Paused;

            audioSources[10].mute = true;
            audioSources[11].mute = true;

            Time.timeScale = 0;

            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                ChartBoostBinding.trackEvent("On Pause Event");
            }
        }
        else
        {
            axes      = _cachedAxes;
            GameState = _cachedGameState;

            audioSources[10].mute = false;
            audioSources[11].mute = false;

            Time.timeScale = 1;
        }
    }
コード例 #13
0
        /// Called when a finger touches the screen.
        public void Press(int id, Vector2 screenPosition)
        {
            Transform target = GetTargetObject(screenPosition);

            if (!target != null && target.gameObject.layer == layerGizmos)
            {
                isDraggingGizmo = true;

                currentPlanePt     = currentSelected.position;
                currentPlaneNormFw = currentSelected.forward;
                currentPlaneNormRt = currentSelected.right;
                currentPlaneNormUp = currentSelected.up;

                currentAxis = (RotationAxes)Enum.Parse(typeof(RotationAxes), target.name);
                switch (currentAxis)
                {
                case RotationAxes.XAxis:
                    startMouseCoords = currentMouseCoords =
                        GetAxisPlaneIntersect(screenPosition, currentPlaneNormRt);
                    previousRotation = 0f;
                    break;

                case RotationAxes.ZAxis:
                    startMouseCoords = currentMouseCoords =
                        GetAxisPlaneIntersect(screenPosition, currentPlaneNormFw);
                    previousRotation = 0f;
                    break;

                case RotationAxes.YAxis:
                    startMouseCoords = currentMouseCoords =
                        GetAxisPlaneIntersect(screenPosition, currentPlaneNormUp);
                    previousRotation = 0f;
                    break;
                }
                SendTransformUpdate(target.eulerAngles);
                startPos = currentSelected.eulerAngles;
            }
        }
コード例 #14
0
        // -------------------------------------------

        /*
         * We will apply the movement to the camera
         */
        private void MoveCameraWithMouse()
        {
            if (Input.GetKey(KeyCode.LeftShift))
            {
                m_axes = RotationAxes.None;

                if ((Input.GetAxis("Mouse X") != 0) || (Input.GetAxis("Mouse Y") != 0))
                {
                    m_axes = RotationAxes.MouseXAndY;
                }

                // USE MOUSE TO ROTATE VIEW
                if ((m_axes != RotationAxes.Controller) && (m_axes != RotationAxes.None))
                {
                    if (m_axes == RotationAxes.MouseXAndY)
                    {
                        float rotationX = m_cameraLocal.transform.localEulerAngles.y + Input.GetAxis("Mouse X") * m_sensitivityX;

                        m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                        m_rotationY  = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);

                        m_cameraLocal.transform.localEulerAngles = new Vector3(-m_rotationY, rotationX, 0);
                    }
                    else if (m_axes == RotationAxes.MouseX)
                    {
                        m_cameraLocal.transform.Rotate(0, Input.GetAxis("Mouse X") * m_sensitivityX, 0);
                    }
                    else
                    {
                        m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                        m_rotationY  = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);

                        m_cameraLocal.transform.localEulerAngles = new Vector3(-m_rotationY, transform.localEulerAngles.y, 0);
                    }
                }
            }
        }
コード例 #15
0
 public void BothAxis()
 {
     axes = RotationAxes.MouseXAndY;
 }
コード例 #16
0
 public void OnlyYAxis()
 {
     axes = RotationAxes.MouseX;
 }
コード例 #17
0
 public void OnlyXAxis()
 {
     axes = RotationAxes.MouseY;
 }
コード例 #18
0
	void onPause()
	{
		// Disable Pause in Reload Mode
		// Bugfix hack: Pause does not release in Reload Menu.
		if (GameState == _GameState.Reload) {
			UnityEngine.Debug.Log("PlayerController.cs: Bypass Pause in Reload Menu");
			return;
		}
		
		if( Time.timeScale == 1 )
		{
			_cachedAxes = axes;
			_cachedGameState = GameState;
			
			axes = RotationAxes.None;
			GameState = _GameState.Paused;
			
			audioSources[10].mute = true;
			audioSources[11].mute = true;
			
			Time.timeScale = 0;
			
			if( Application.platform == RuntimePlatform.IPhonePlayer )
				ChartBoostBinding.trackEvent( "On Pause Event" );
			
		} else {
			axes = _cachedAxes;
			GameState = _cachedGameState;
			
			audioSources[10].mute = false;
			audioSources[11].mute = false;
			
			Time.timeScale = 1;
		}
	}
コード例 #19
0
ファイル: Tutorial.cs プロジェクト: Avatarchik/Duel-Off
	void Update () 
	{
#if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
        if (axes == RotationAxes.MouseXAndY)
        {
            // Read the mouse input axis
            rotationX += Input.GetAxis("Mouse X") * sensitivityX;
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;

            rotationX = ClampAngle (rotationX, rotationMinY, rotationMaxY);
            rotationY = ClampAngle (rotationY, rotationMinX, rotationMaxX);

            Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
            Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, -Vector3.right);

            transform.localRotation = originalRotation * xQuaternion * yQuaternion;
        }
        else if (axes == RotationAxes.MouseX)
        {
            rotationX += Input.GetAxis("Mouse X") * sensitivityX;
            rotationX = ClampAngle (rotationX, rotationMinY, rotationMaxY);

            Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
            transform.localRotation = originalRotation * xQuaternion;
			
			// When User is told to Tilt Device Left or Right
			if( TutorialState == _TutorialState.MissionOne )
			{
				if( rotationX < -60 && grid.curPos < 5 )
				{
					axes = RotationAxes.None;
					grid.moveGrid(_TutorialState.None);
				}
				else if( rotationX > 60 && grid.curPos == 5 )
				{
					axes = RotationAxes.None;
					grid.moveGrid(_TutorialState.None);
				}
			}
        }
        else if( axes == RotationAxes.MouseY )
        {
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = ClampAngle (rotationY, rotationMinX, rotationMaxX);

            Quaternion yQuaternion = Quaternion.AngleAxis (-rotationY, Vector3.right);
            transform.localRotation = originalRotation * yQuaternion;
        }
		
#elif UNITY_IPHONE || UNITY_ANDROID
		if( axes == RotationAxes.MouseXAndY )
		{
			// Store movement into temporary Vector3 to be applied to transform
			localRotation.y -= Input.acceleration.y * speed;
			localRotation.x += FixAcceleration( Input.acceleration ).x * speed;
			
			// Clamp rotation within set field of view
			localRotation.y = ClampAngle( localRotation.y, rotationMinY, rotationMaxY );
			localRotation.x = ClampAngle( localRotation.x, rotationMinX, rotationMaxX );
			
			// Apply new cached rotation to transform rotation
			transform.localEulerAngles = localRotation;
		}
		else if( axes == RotationAxes.MouseX )
		{
			localRotation.y -= Input.acceleration.y * speed;
			localRotation.y = ClampAngle( localRotation.y, rotationMinY, rotationMaxY );

			transform.localEulerAngles = localRotation;
			
			// When User is told to Tilt Device Left or Right
			if( TutorialState == _TutorialState.MissionOne )
			{
				if( localRotation.y < -60 && grid.curPos < 5 )
				{
					axes = RotationAxes.None;
					grid.moveGrid(_TutorialState.None);
				}
				else if( localRotation.y > 60 && grid.curPos == 5 )
				{
					axes = RotationAxes.None;
					grid.moveGrid(_TutorialState.None);
				}
			}
		}
		else if( axes == RotationAxes.MouseY )
		{
			localRotation.x += FixAcceleration( Input.acceleration ).x * speed;
			localRotation.x = ClampAngle( localRotation.x, rotationMinX, rotationMaxX );
			
			transform.localEulerAngles = localRotation;
		}
#endif
		if( Input.GetMouseButtonUp(0) )
		{
			// When user is able to Shoot
			if( (int)TutorialState >= (int)_TutorialState.MissionTwo )
			{
				// If user hits ammo sprite, reload instead of shooting
				Ray ray = UIcam3D.camera.ScreenPointToRay(Input.mousePosition);
				RaycastHit hit;
				
				if( Physics.Raycast( ray, out hit, 100f, UIMask3D ) )
				{
					if( onTutorialUpdate != null )
						onTutorialUpdate( hit.collider.gameObject, DBAccess.instance.userPrefs.userGun );
					
					if( TutorialState == _TutorialState.MissionTwoSecond )
					{
						axes = RotationAxes.None;
						TutorialState = _TutorialState.InTransition;
						grid.moveGrid(_TutorialState.None);
					}
				}
				else if( DBAccess.instance.userPrefs.userGun.capacity > 0 )
				{
					// If not in reload or pause, shoot gun.  Gun will take care of bullets remaining logic.
					DBAccess.instance.userPrefs.userGun.Shoot(transform,rayCastmask,gunModel);
					
					onTutorialUpdate( null, DBAccess.instance.userPrefs.userGun );
					
					BroadcastMessage( "applyRecoil" );
					
					audioSources[0].Play();
				}
				else
					audioSources[3].Play();
				
				// When user is told to Shoot Anywhere
				if( TutorialState == _TutorialState.MissionTwo )
				{
					Debug.Log( DBAccess.instance.userPrefs.userGun.capacity );
					if( shotCount < 4 )
						shotCount++;
					else
					{
						TutorialState = _TutorialState.None;
						axes = RotationAxes.None;
						grid.moveGrid(_TutorialState.None);
					}
				}
			}
			// When user needs to click on the Tutorial Window
			else if( TutorialState != _TutorialState.InTransition )
			{
				RaycastHit hit;
				if( Physics.Raycast(transform.position,UICam.transform.forward,out hit,100f,tutorialMask) )
				{
					if( TutorialState != _TutorialState.MissionOne )
					{
						grid.moveGrid(TutorialState);
						TutorialState = _TutorialState.InTransition;
					}
					if( hit.collider.name == "WindowBG(Calibrate)" )
					{
						CalibrateAccelerometer();
					}
				}
			}
			
			Ray ray2 = UIcam3D.camera.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit2;
			
			if( Physics.Raycast( ray2, out hit2, 100f ) )
				hit2.collider.SendMessage( "onHitByRayCast", hit2.collider.gameObject, SendMessageOptions.DontRequireReceiver );
		}
	}
コード例 #20
0
    void Update()
    {
#if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
        if (axes == RotationAxes.MouseXAndY)
        {
            // Read the mouse input axis
            rotationX += Input.GetAxis("Mouse X") * sensitivityX;
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;

            rotationX = ClampAngle(rotationX, rotationMinY, rotationMaxY);
            rotationY = ClampAngle(rotationY, rotationMinX, rotationMaxX);

            Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
            Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, -Vector3.right);

            transform.localRotation = originalRotation * xQuaternion * yQuaternion;
        }
        else if (axes == RotationAxes.MouseX)
        {
            rotationX += Input.GetAxis("Mouse X") * sensitivityX;
            rotationX  = ClampAngle(rotationX, rotationMinY, rotationMaxY);

            Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
            transform.localRotation = originalRotation * xQuaternion;

            // When User is told to Tilt Device Left or Right
            if (TutorialState == _TutorialState.MissionOne)
            {
                if (rotationX < -60 && grid.curPos < 5)
                {
                    axes = RotationAxes.None;
                    grid.moveGrid(_TutorialState.None);
                }
                else if (rotationX > 60 && grid.curPos == 5)
                {
                    axes = RotationAxes.None;
                    grid.moveGrid(_TutorialState.None);
                }
            }
        }
        else if (axes == RotationAxes.MouseY)
        {
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY  = ClampAngle(rotationY, rotationMinX, rotationMaxX);

            Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, Vector3.right);
            transform.localRotation = originalRotation * yQuaternion;
        }
#elif UNITY_IPHONE || UNITY_ANDROID
        if (axes == RotationAxes.MouseXAndY)
        {
            // Store movement into temporary Vector3 to be applied to transform
            localRotation.y -= Input.acceleration.y * speed;
            localRotation.x += FixAcceleration(Input.acceleration).x *speed;

            // Clamp rotation within set field of view
            localRotation.y = ClampAngle(localRotation.y, rotationMinY, rotationMaxY);
            localRotation.x = ClampAngle(localRotation.x, rotationMinX, rotationMaxX);

            // Apply new cached rotation to transform rotation
            transform.localEulerAngles = localRotation;
        }
        else if (axes == RotationAxes.MouseX)
        {
            localRotation.y -= Input.acceleration.y * speed;
            localRotation.y  = ClampAngle(localRotation.y, rotationMinY, rotationMaxY);

            transform.localEulerAngles = localRotation;

            // When User is told to Tilt Device Left or Right
            if (TutorialState == _TutorialState.MissionOne)
            {
                if (localRotation.y < -60 && grid.curPos < 5)
                {
                    axes = RotationAxes.None;
                    grid.moveGrid(_TutorialState.None);
                }
                else if (localRotation.y > 60 && grid.curPos == 5)
                {
                    axes = RotationAxes.None;
                    grid.moveGrid(_TutorialState.None);
                }
            }
        }
        else if (axes == RotationAxes.MouseY)
        {
            localRotation.x += FixAcceleration(Input.acceleration).x *speed;
            localRotation.x  = ClampAngle(localRotation.x, rotationMinX, rotationMaxX);

            transform.localEulerAngles = localRotation;
        }
#endif
        if (Input.GetMouseButtonUp(0))
        {
            // When user is able to Shoot
            if ((int)TutorialState >= (int)_TutorialState.MissionTwo)
            {
                // If user hits ammo sprite, reload instead of shooting
                Ray        ray = UIcam3D.camera.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;

                if (Physics.Raycast(ray, out hit, 100f, UIMask3D))
                {
                    if (onTutorialUpdate != null)
                    {
                        onTutorialUpdate(hit.collider.gameObject, DBAccess.instance.userPrefs.userGun);
                    }

                    if (TutorialState == _TutorialState.MissionTwoSecond)
                    {
                        axes          = RotationAxes.None;
                        TutorialState = _TutorialState.InTransition;
                        grid.moveGrid(_TutorialState.None);
                    }
                }
                else if (DBAccess.instance.userPrefs.userGun.capacity > 0)
                {
                    // If not in reload or pause, shoot gun.  Gun will take care of bullets remaining logic.
                    DBAccess.instance.userPrefs.userGun.Shoot(transform, rayCastmask, gunModel);

                    onTutorialUpdate(null, DBAccess.instance.userPrefs.userGun);

                    BroadcastMessage("applyRecoil");

                    audioSources[0].Play();
                }
                else
                {
                    audioSources[3].Play();
                }

                // When user is told to Shoot Anywhere
                if (TutorialState == _TutorialState.MissionTwo)
                {
                    Debug.Log(DBAccess.instance.userPrefs.userGun.capacity);
                    if (shotCount < 4)
                    {
                        shotCount++;
                    }
                    else
                    {
                        TutorialState = _TutorialState.None;
                        axes          = RotationAxes.None;
                        grid.moveGrid(_TutorialState.None);
                    }
                }
            }
            // When user needs to click on the Tutorial Window
            else if (TutorialState != _TutorialState.InTransition)
            {
                RaycastHit hit;
                if (Physics.Raycast(transform.position, UICam.transform.forward, out hit, 100f, tutorialMask))
                {
                    if (TutorialState != _TutorialState.MissionOne)
                    {
                        grid.moveGrid(TutorialState);
                        TutorialState = _TutorialState.InTransition;
                    }
                    if (hit.collider.name == "WindowBG(Calibrate)")
                    {
                        CalibrateAccelerometer();
                    }
                }
            }

            Ray        ray2 = UIcam3D.camera.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit2;

            if (Physics.Raycast(ray2, out hit2, 100f))
            {
                hit2.collider.SendMessage("onHitByRayCast", hit2.collider.gameObject, SendMessageOptions.DontRequireReceiver);
            }
        }
    }
コード例 #21
0
    private void RotateSelf(RotationAxes axes)
    {
        Vector2 speed = CalculateSpeed ();

        switch(axes)
        {
        case RotationAxes.MouseXAndY:
            rotationX = transform.localEulerAngles.y + speed.x;

            rotationY += speed.y;
            rotationY = Mathf.Clamp (rotationY, minYRotation, maxYRotation);

            transform.localEulerAngles = new Vector3(rotationY, rotationX, 0);
            break;
        case RotationAxes.MouseX:
            rotationX = transform.localEulerAngles.y + speed.x;

            transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, rotationX, 0);
            break;
        case RotationAxes.MouseY:
            rotationY += speed.y;
            rotationY = Mathf.Clamp (rotationY, minYRotation, maxYRotation);

            transform.localEulerAngles = new Vector3(rotationY, transform.localEulerAngles.y, 0);
            break;
        }
    }