- Home /
Looking at points
Hey guys, I have a move to point script and what I want to do is to look at each point. Like A-B-C points Going from A to B. to look at B point going from B to C looking at C point. I have been fiddling with different codes and trying my own but i cant seem to get it working properly.
public Transform target;
public Transform target2;
public float rotationSpeed;
public Vector3 firstPosition;
public Vector3 secondPosition;
private Quaternion _lookRotation;
private Vector3 _direction;
private bool TOF;
private bool FOT;
void Update()
{
if (transform.position == firstPosition) {
TOF = true;
FOT=false;
if (transform.position == secondPosition) {
FOT = true;
TOF =false;
}
}
if (TOF) {
_direction = (target.position - transform.position).normalized;
}
if (FOT) {
_direction = (target2.position - transform.position).normalized;
}
_lookRotation = Quaternion.LookRotation(_direction);
transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime * rotationSpeed);
}
I know it is an amateur code but i wouldn't come here looking for help if I wasn't truly stuck.
Answer by ScriptingTaco · Mar 12, 2015 at 06:00 PM
Hi! If you have a gameobject that you want to move A to B to C, this should work: (untested code!)
public Vector3 aPosition;
public Vector3 bPosition;
public Vector3 cPosition;
public float allowedDis; //space allowed between next object to be "on" it
public float moveSpeed;
void Start(){
allowedDis=2; //the smaller, the closer the position must be to notice
moveSpeed=10;
aPosition=Transform.Find("NameOfObjectA").transform.position;
bPosition=Transform.Find("NameOfObjectB").transform.position;
cPosition=Transform.Find("NameOfObjectC").transform.position;
}
void Update(){
if(Vector3.Distance(transform.position,aPosition)<allowedDis){
transform.LookAt(bPosition);
}
else if(Vector3.Distance(transform.position,bPosition)<allowedDis){
transform.LookAt(cPosition);
}
transform.localPosition.z-=Time.deltaTime*moveSpeed;
}
Thanks for your reply. Your code did seem to work when i took off the aPosition=Transform.Find("NameOfObjectA").transform.position; bPosition=Transform.Find("NameOfObjectB").transform.position; cPosition=Transform.Find("NameOfObjectC").transform.position;
thanks :)
Yay I'm glad I could help. Dp you $$anonymous$$d accepting the answer aswell? :)
Your answer
Follow this Question
Related Questions
lock until point reached then when clicked on deduct points 0 Answers
Scoring (i'm stuck) 3 Answers
Is there another way of counting Scores (points) instead of Colliding (destroying) 1 Answer
How to add points when a curtain score is reached ? 1 Answer
How to get the normal of a line in relation to a specific point in 3D? 1 Answer