- Home /
How to make my player to look in the direction of right joystick's input direction
Hey guys, i'm trying to make character control for touch screen. I want my player to look in the direction of right joystick movement. like if i move my joystick up the player should look in positive z direction, if i move my right joystick down the player should look in negative direction and same for x axis. i have kinda reached half way as at the start point it is working but as i move the character, it just keep looking in the direction of player's spawn point. the script i used is here.
pragma strict
@script RequireComponent( CharacterController )
// This script must be attached to a GameObject that has a CharacterController var moveJoystick : Joystick; var rotateJoystick : Joystick; public var Quaternion;
var forwardSpeed : float = 2; var backwardSpeed : float = 2; var sidestepSpeed : float = 4;
private var thisTransform : Transform; private var character : CharacterController; private var velocity : Vector3; // Used for continuing momentum while in air
function Start() { // Cache component lookup at startup instead of doing this every frame 
 thisTransform = GetComponent( Transform ); character = GetComponent( CharacterController ); 
 // Move the character to the correct start position in the level, if one exists
 var spawn = GameObject.Find( "PlayerSpawn" );
 if ( spawn )
     thisTransform.position = spawn.transform.position;
}
function OnEndGame() { // Disable joystick when the game ends 
 moveJoystick.Disable(); rotateJoystick.Disable(); 
 // Don't allow any more control changes when the game ends
 this.enabled = false;
}
function Update() { var movement = thisTransform.TransformDirection( Vector3( moveJoystick.position.x, 0, moveJoystick.position.y ) );
 // We only want horizontal movement
 movement.y = 0;
 movement.Normalize();
 var absJoyPos = Vector2( Mathf.Abs( moveJoystick.position.x ), Mathf.Abs( moveJoystick.position.y ) );    
 if ( absJoyPos.y > absJoyPos.x )
 {
     if ( moveJoystick.position.y > 0 )
         movement *= forwardSpeed * absJoyPos.y;
     else
     {
         movement *= backwardSpeed * absJoyPos.y;
     }
 }
 else
 {
     movement *= sidestepSpeed * absJoyPos.x;
 }
 
     
 movement += velocity;    
 movement += Physics.gravity;
 movement *= Time.deltaTime;
 
 // Actually move the character    
 character.Move( movement );
 
 if ( character.isGrounded )
     // Remove any persistent velocity after landing    
     velocity = Vector3.zero;
     var rotation = Vector3( rotateJoystick.position.x, 1, rotateJoystick.position.y );
 
 
 if (rotation != Vector3.zero)
     {
 
         transform.LookAt(rotation);
         
     }
}
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                