How can a single script attached to multiple enemies provide separate behavior for each enemy?

Posted by Syed on Game Development See other posts from Game Development or by Syed
Published on 2011-11-30T12:28:16Z Indexed on 2011/11/30 18:17 UTC
Read the original article Hit count: 492

Filed under:
|
|

I am making a TD game and now stucked at multiple enemies using same script. All is well with scripts attached with one enemy only. Problem is in running multiple enemies.

Here is the overview. I have a Enemy object with which I have attached a 'RunEnemy' script. Flow of this script is:

RunEnemy.cs:

PathF p;
p = gameObject.GetComponent<PathF>();     //PathF is a pathfinding algo which has     'search; function which returns a array of path from starting position              
PathList = p.search(starting position);                   
//-------------------------------

if(PathList != null) {                               //if a way found!     
if(moving forward)                                            
     transform.Translate(someXvalue,0,0);  //translates on every frame until next grid point

else if(moving back)     
   transform.Translate(0,someXvalue,0);

    ...and so on..

      if(reached on next point)
         PathList = p.search(from this point)   //call again from next grid point so that if user placed a tower enemy will run again on the returned path
}

Now I have attached this script and "PathF.cs" to a single enemy which works perfect. I have then made one more enemy object and attached both of these script to it as well, which is not working they both are overlapping movements. I can't understand why, I have attached these scripts on two different gameobjects but still their values change when either enemy changes its value. I don't want to go with a separate script for each enemy because there would be 30 enemies in a scene. How can I fix this problem?

© Game Development or respective owner

Related posts about c#

Related posts about unity