c# - How to make enemies turn and move towards player when near? Unity3D -


i trying make enemy object turn , start moving towards player object when player comes within vicinity.

for turning have been testing transform.lookat() function although isn't returning desired results when player close enemy object enemy starts tilt backwards , want enemy able rotate along y axis, in advance.

using unityengine; using system.collections;  public class enemycontroller : monobehaviour {     public transform visionpoint;     private playercontroller player;      public transform player;      public float visionangle = 30f;     public float visiondistance = 10f;     public float movespeed = 2f;     public float chasedistance = 3f;      private vector3? lastknownplayerposition;     // use initialization     void start () {         player = gameobject.findobjectoftype<playercontroller> ();     }      // update called once per frame     void update () {         // not giving desired results         transform.lookat(player);     }      void fixedupdate () {      }      void () {         vector3 deltatoplayer = player.transform.position - visionpoint.position;         vector3 directiontoplayer = deltatoplayer.normalized;          float dot = vector3.dot (transform.forward, directiontoplayer);          if (dot < 0) {             return;         }          float distancetoplayer = directiontoplayer.magnitude;          if (distancetoplayer > visiondistance)         {             return;         }          float angle = vector3.angle (transform.forward, directiontoplayer);          if(angle > visionangle)         {             return;         }          raycasthit hit;         if(physics.raycast(transform.position, directiontoplayer, out hit, visiondistance))         {             if (hit.collider.gameobject == player.gameobject)             {                 lastknownplayerposition = player.transform.position;             }         }     } } 

change @ target:

void update () {     vector3 lookat = player.position;     lookat.y = transform.position.y;     transform.lookat(lookat); } 

this way @ target on same height object.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -