Hi, I’m trying to do a simple script where “Cube” objects follow “PlayerCube” when PC gets in a range of <50 from any C position. If I don’t do the if, it works fine, but all the cubes in my map will follow PC. It is not working (none of the cubes move when I approach them), and I guess I’m accessing the GameObjects’ position wrong or maybe my mistake is in the if statement. I appreciate any help you can offer. Here is my code:
var target : Transform; //the enemy's target
var moveSpeed = 50; //move speed
var rotationSpeed = 3; //speed of turning
var myTransform : Transform; //current transform data of this enemy
function Awake()
{
myTransform = transform; //cache transform data for easy access/preformance
}
function Start()
{
target = GameObject.FindWithTag("Player").transform; //target the player
}
function Update () {
//if((target.transform.position-transform.position).sqrMagnitude<20){
var pos1 = GameObject.Find("PlayerCube").transform.position;
var pos2 = GameObject.Find("Cube").transform.position;
if(Vector3.Distance (pos1, pos2) < 50){
//rotate to look at the player
myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
//move towards the player
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
}