Find Transform in the scene

Hello, everybody! Now I’m having a little problem with my scripting. This is my code of my AI.

var target : Transform;

function Awake ()

{

     if (!target)
     {

         target = GameObject.FindWithTag ("Player");
     }
}

//the code above has error. “Cant Convert GameObject to Transform”. In my function update, I need to use the transform in order to make my AI rotate and move toward the Player.
i.e :

 var relativePos = target.position - transform.position;

So how can I fix that? Thanks in advance!

2 Answers

2

You’re almost there. :slight_smile:

Your problem is, as the error points out, that GameObject.FindWithTag returns a GameObject, and you want a transform. Fortunately, GameObjects always have a transform. (Since, understandably enough, it’s hard to define an object in your game with less detail than at least a position, scale and rotation).

Therefore, to acquire the player’s transform, all you have to do is add “.transform” to that:

target = GameObject.FindWithTag ("Player").transform;

Then you’re accessing the transform of the GameObject tagged “Player”, and not just trying to save the reference to the GameObject itself.

wow!!! Thank you!!! It works!!! ^^

CHPedersen. Thank you so much for you're help and Henry for asking the question this just saved a ton of trail and error. Thank you.

target = GameObject.Find(“Hero”).transform;