Beispiel #1
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 );
		}
	}
Beispiel #2
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);
            }
        }
    }