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
}
}
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.
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.