Question by 
               darchyneer · Sep 23, 2017 at 06:54 PM · 
                rotationcharactercontroller  
              
 
              Character Controller Rotate to turn at a bend
I am trying to make the Character COntroller turn at a bend and also to rotate the player at 20 degrees to the left or right depending on which side you are moving to(strafe from left to right but rotated at angle 20). I just can't figure it out. I am still a noob in c#. I need help people. Here is the script I have at the moment. I also attached what I want looks like.
 
 private CharacterController controller;
 public float runSpeed = 10.0f;
 public float jumpSpeed = 8.0f;
 public float sideSpeed = 10.0f;
 public float jumpForwardSpeed = 8.0f;
 public float gravity = 20.0f;
 private Vector3 moveDirection = Vector3.zero;
 private Animator anim;
 public Transform target;
 public float RotateSpeed = 5.0f;
 // Use this for initialization
 void Start () {
     anim = GetComponent<Animator>();
     controller = GetComponent<CharacterController>();
 
 }
 
 // Update is called once per frame
 void Update () {
         //if we are on the ground
         if(controller.isGrounded){
         moveDirection = new Vector3(Input.GetAxisRaw("Horizontal"),0,0) * sideSpeed;
         moveDirection = transform.TransformDirection(moveDirection);
         //forward speed while we are on the ground
         moveDirection.z = runSpeed;
         if(Input.GetMouseButtonDown(0)){ 
             //up speed
             moveDirection.y = jumpSpeed;
             moveDirection.z = jumpForwardSpeed;
             anim.Play("Jump");
         } 
         if(Input.GetKey(KeyCode.Q)){
         
         
         }
         if(Input.GetKey(KeyCode.E)){
         
         }
     }
         
     //if we are not on the ground
     else {
         
         moveDirection.y -= gravity * Time.deltaTime;
             }
 
     moveDirection.x = Input.GetAxisRaw("Horizontal") * sideSpeed;
     controller.Move (moveDirection * Time.deltaTime);
     float step = RotateSpeed * Time.deltaTime;
     transform.rotation = Quaternion.RotateTowards(transform.rotation, target.rotation, step);      
 
               
                 
                turn-right.jpg 
                (55.6 kB) 
               
 
                
                 
                capture-3.jpg 
                (83.7 kB) 
               
 
              
               Comment
              
 
               
              Your answer