Hey guys,
I’m trying to figure out how to make an object follow another object, but only until a button is pressed. Here is what I’ve got so far:
public GameObject target;
void Update () {
Vector3 pos = transform.position;
target = GameObject.FindGameObjectWithTag("DS_Holder");
pos.x = target.transform.position.x;
transform.position = pos;
}
And though this works, I want the object to stop following “target” after a key is pressed.
Any ideas?
public GameObject target;
bool keyPressed= false;
void Update () {
if(!keyPressed){
Vector3 pos = transform.position;
target = GameObject.FindGameObjectWithTag("DS_Holder");
pos.x = target.transform.position.x;
transform.position = pos;
}
if (Input.GetKeyDown ("space"))
{
keyPressed=true;
}
}
Using FingObject every frame is very inefficient, consider caching gameobject in start or finding it other way.
Here’s an example. This is actual “follow”, i you prefer your mentioned way or if it’s necessary for you, just change the follow code part.
private bool follow = false;
private GameObject target;
public float moveSpeed = 3f;
private void Start(){
target = GameObject.FindGameObjectWithTag("DS_Holder");
}
private void Update(){
if (Input.GetKeyDown(KeyCode.I)){
follow != follow;
}
//Follow
if(follow){
transform.LookAt(target);
transform.position += transform.forward * moveSpeed * Time.deltaTime;
}
//Dont follow
else{
}
}