- Home /
Make an Object Animate Up In The Update Function
I am trying to make an object move up when the mouse is clicked. I want it to move slowly. I have tried adding Transform.Translate and Vector3.Lerp. They both only move a little bit per click. Here is my script.
var cube : Transform; var end : Transform;
function Update () {
if (Input.GetButtonDown("Fire1")){
var cube = Instantiate(cube, Vector3 (transform.position.x, transform.position.y, 0), Quaternion.identity);
//I tried Transform.Translate and Vector3.Lerp Here
}
}
Answer by Jean-Fabre · Apr 20, 2011 at 08:25 AM
Hi,
Instantiate is definitely not the thing to use to translate, it just creates more cubes.
Your issue is that you are using Input.GetButtonDown which is only triggered once. GetButton is always true while the user presses the key.
The script variant is the following to move a cube when pressing "Fire1":
public var speed:float = 2f;
function Update () {
if (Input.GetButton("Fire1")){
transform.Translate(Time.deltaTime*speed,0f,0f);
}
}
Now, you might also be interested in alternative ways, there is a screencast available showing how to move a cube using PlayMaker, If you are beginning with unity and scriting, PlayMaker could be a very helpful extension to help you building interactivity with no/minimal coding.
The screencast The forum thread
Bye,
Jean
Answer by anonymous 2 · Apr 20, 2011 at 02:14 PM
You misunderstood my question. When the mouse is clicked, not held, I want 1 cube to instantiate and the object spawning the cube to move up smoothly a certain distance.
Hi, You should have made a comment on my answer ins$$anonymous$$d of an answer to your question... Anyway. Please edit your question to reflect what you said here as well.