x


problem with vector3.right and up

I'm trying to use this code to have the "s" key move the player down and the "d" key move the player to the right:

var number:float=0;

function Update() {

HorizontalTranslate("d",1,5,8,Vector3.right);
HorizontalTranslate("s",-1,5,8,Vector3.up);
}

function HorizontalTranslate(input,value,damp,speed,direction){
var hvalue=0;
 if(Input.GetKey(input))
 {
   hvalue =hvalue+value;
 }

number = Mathf.Lerp(number, hvalue, Time.deltaTime*damp);

transform.Translate(direction * number*Time.deltaTime*speed, Space.Self);
}

problem is that when I press the keys the object moves diagonally rather than straight to the right or down. My guess is that somehow both Vector3.up and Vector3.right are being called at the same time, but i'm not quite sure why it's doing it. Any ideas how to fix this? thanks.

more ▼

asked Nov 14 '10 at 12:59 AM

pepperedereppep gravatar image

pepperedereppep
101 26 27 35

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

2 answers: sort voted first

It's doing that because you're pressing both keys.

You need an if-else in there to prevent checking one if the other is pressed, or you need to cancel the other direction of movement by storing a "desired movement" and only allowing one axis of that movement to be non-zero.

more ▼

answered Nov 14 '10 at 01:44 AM

Loius gravatar image

Loius
10.9k 1 12 43

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

if you place this script on the object you want to move if will do as you want and s=down, d=right:

function Update () {

//moves down when s is pressed/held

if (Input.GetKey (KeyCode.S))
    transform.Translate(0, -1, 0);

//moves right when d is pressed/held

if (Input.GetKey (KeyCode.D))
    transform.Translate(0, 0, 1);

}

more ▼

answered Nov 14 '10 at 12:00 PM

Scribe gravatar image

Scribe
1.8k 12 16 34

(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:

x1334
x982
x602

asked: Nov 14 '10 at 12:59 AM

Seen: 1036 times

Last Updated: Nov 14 '10 at 12:59 AM