x


SideScroller Rotate

I've edited this WoW Camera Script to fit my character properly, but could someone just quickly tell me how to rotate the character depending on which way he runs? Eg. If he runs left he turns left.

// Movement Variables
private var jumpSpeed:float = 9.0; 
private var gravity:float = 100.0; 
private var rotateSpeed:float = 250.0; 
private var grounded:boolean = false; 
private var moveDirection:Vector3 = Vector3.zero; 
private var isWalking:boolean = true; 
private var moveStatus:String = "idle"; 
private var xSpeed = 250.0; 
private var ySpeed = 120.0; 
private var yMinLimit = -40; 
private var yMaxLimit = 80; 
private var x = 0.0; 
private var y = 0.0; 

static var walkSpeed:float = 15.0; 
static var isRunning:boolean = false;
static var isMoving:boolean = false;

function Start ()
{
   // Set all animations to loop
   animation.wrapMode = WrapMode.Loop;
   animation.Stop();
}

// -------------------------------------------------------------------------------------------------------------
// ----------------------------------------------------------- UPDATE ---------------------------------------
// -------------------------------------------------------------------------------------------------------------

function Update () {
   if(grounded) { 
        moveDirection = new Vector3(0,0,Input.GetAxis("Horizontal")); 
        if(Input.GetAxis("Horizontal")) { 
            moveDirection *= .7; 
        } 
        moveDirection = transform.TransformDirection(moveDirection); 
        moveDirection *= walkSpeed;
        moveStatus = "idle"; 
        if(moveDirection != Vector3.zero) {
            animation.CrossFade("run",0.2);
            isMoving = true;
        } else {
            isMoving = false;
            animation.CrossFade("Take 001",0.2);
        }
    }                           
    //////////

    if(Input.GetKey("q")) {
        isRunning = true;
        walkSpeed = 50;
    }else{
        isRunning = false;
        walkSpeed = 30;
    }
    //////////

    moveDirection.y -= gravity * Time.deltaTime; 
    var controller:CharacterController = GetComponent(CharacterController); 
    var flags = controller.Move(moveDirection * Time.deltaTime); 
    grounded = (flags & CollisionFlags.Below) != 0; 
    };
    static function ClampAngle (angle : float, min : float, max : float) { 
   if (angle < -360) 
      angle += 360; 
   if (angle > 360) 
      angle -= 360; 
   return Mathf.Clamp (angle, min, max); 
} 

@script RequireComponent(CharacterController)
more ▼

asked Apr 01 '11 at 12:14 AM

Xatoku gravatar image

Xatoku
152 73 81 88

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first
transform.LookAt(transform.position + moveDirection); 

or

transform.LookAt(transform.position + transform.forward);
more ▼

answered Apr 01 '11 at 08:09 PM

Statement gravatar image

Statement ♦♦
20.1k 35 70 175

When I added this underneath the moveDirection *= .7; I got him turning but now when I run backwards he runs forwards.

Apr 01 '11 at 10:29 PM Xatoku

If you put it at the very end of the Update function?

Apr 02 '11 at 09:14 AM Statement ♦♦

Nope, still not working.

Apr 02 '11 at 02:15 PM Xatoku
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3015
x810
x727
x526
x70

asked: Apr 01 '11 at 12:14 AM

Seen: 843 times

Last Updated: Apr 01 '11 at 07:05 PM