- Home /
 
               Question by 
               Mill0698 · Aug 14, 2013 at 12:29 AM · 
                rotationquaternioncamera rotate  
              
 
              Rotation based player Rotation and Camera Rotation
Good after noon all. I am trying to rotate a plane to snap rotations based on the cameras rotation around the player.
Now my code works perfectly if the Player himself doesn't rotate. Rotating around a stationary player seems to work fine, however when the player rotates his y axis, it doesn't always work. Here is the code:
 void ApplyImageRotation()
     {
         var _result = ((TP_Controller.CharacterController.gameObject.transform.localRotation.eulerAngles.y - Camera.main.transform.localRotation.eulerAngles.y) * 
             Mathf.Sign((TP_Controller.CharacterController.gameObject.transform.localRotation.eulerAngles.y - Camera.main.transform.localRotation.eulerAngles.y)));
         
         input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertic
         
         
         if(_result > rotationResults[0] && _result < rotationResults[1])
         {
             currentImageLookDirection = ImageLookDirection.Left;
             this.GetComponent<SpriteSheet>().CurrentState = SpriteSheet.DirectionState.Left;
             transform.localEulerAngles = new Vector3(90.0f, 270.0f, 0.0f);
         }
         else if(_result > rotationResults[1] && _result < rotationResults[2])
         {
             currentImageLookDirection = ImageLookDirection.Forward;
             this.GetComponent<SpriteSheet>().CurrentState = SpriteSheet.DirectionState.Down;
             transform.localEulerAngles = new Vector3(90.0f, 0.0f, 0.0f);
         }
         else if(_result > rotationResults[2] && _result < rotationResults[3])
         {
             currentImageLookDirection = ImageLookDirection.Right;
             this.GetComponent<SpriteSheet>().CurrentState = SpriteSheet.DirectionState.Right;
             transform.localEulerAngles = new Vector3(90.0f, 90.0f, 0.0f);
         }
         else 
         {
             currentImageLookDirection = ImageLookDirection.Backward;
             this.GetComponent<SpriteSheet>().CurrentState = SpriteSheet.DirectionState.Up;
             transform.localEulerAngles = new Vector3(90.0f, 180.0f, 0.0f);
         }
     }
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Save last rotation or the camera and apply it after end of event. 0 Answers
How to Change rotation while preserving local horizontal rotation 1 Answer
Weird shake when I try to rotate player according to Virtual Cameras rotation. 0 Answers
Camera not rotating 1 Answer
Rotate player to screen pos 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                