Hello, everybody! Now I'm having a little problem with my scripting. This is my code of my AI.
var target : Transform;
function Awake ()
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.
var relativePos = target.position - transform.position;
So how can I fix that? Thanks in advance!
Answer by CHPedersen
Sep 22, 2011 at 06:29 AM
You're almost there. :)
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.
Answer by alok.kr.029.hotmail
Mar 11, 2014 at 08:49 AM
target = GameObject.Find("Hero").transform;
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users post good questions and use the site effectively we have posted a user guide.
If you are a new user, check out our FAQ for more information.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
For troubleshooting common problems with Unity 5.x Editor (including Win 10).
Answers and Comments
5 People are following this question.
How to have objects with multiple parents capable of seperate rotation
Transform Checking on all Array Objects (JS)
transform.Find() returns a Transform?
Convert a GameObject to a transform?
"GameObject.Find();" not working