|
I have a Strange thing going on and need a solution if anyone knows? I have a Enemy who's AI "Looks At" my Players Transform which is a variable in the Inspector (var Player : Transform). If I drag and drop my Player from the Scene View onto the Player variable (for LookAt) everything works fine and the enemy is always going after my Player. Heres the Problem: If I instantiate the Enemy at runtime it wont remember or hold my players Transform, So Im thinking I need to add my players Prefab in the Inspector so I did. If I drag my Players Prefab onto the var Player (for LookAt) the Enemy will go to where the players prefab was and not go after my player??? I need use the Players Prefab because when I instantiate the Enemy its the only way for it to Hold My Players Transform. Ahh.. this is confusing anyone ever run into this problem? and would anyone know how I would solve this? Im thinking the Players Prefab needs to be updated for the Enemy to know where I am know but I have no idea how to go about this or this may not be the right solution. Here's my Code Im hoping someone can help me sort this out? var awareDistance : float = 15.0; var scaredDistance : float = 10.0; var player : Transform; var runSpeed : float = 4.0; enum AIStatus {Idle = 0, Scared = 1} private var status = AIStatus.Idle; //by default var controller : CharacterController; private var moveDirection = Vector3.zero; //function Start loop animations
function Start()
{
//set all animations to loop
animation.wrapMode = WrapMode.Loop; function Awake() { //maybe replace character controller with box collider & rigidBody for gravity controller = GetComponent(CharacterController); } function Update() {
} function Idle()
{
animation.CrossFade ("idle2"); function RunAway() { //transform.eulerAngles.y = -player.transform.eulerAngles.y; //gets thier rotation from mine
} function CheckStatus() { //player.position is what ever enemy I drag into the player varable above in the inspector var dist = (player.position - transform.position).magnitude; //returns the length for dist
}
(comments are locked)
|

Wowowow I finally figured it out one little line of code drove me nuts but here it is and it has to be in the start function.
player = GameObject.FindWithTag("myrobot").transform;
Yup. So either 'answer' it yourself or delete the question to clean up the list. Thanks
Thanks I was having the same problem and this solved it TY!