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 ); } }
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); } } }