Advertisement
asqapro

AIChase

Sep 2nd, 2012
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function chaseMove() : IEnumerator{
  2.     var x;
  3.     var z;
  4.     //check for collisions, check for route to player
  5.     var pX : float;
  6.     var pZ : float;
  7.     var mX : float;
  8.     var mZ : float;
  9.     var player = GameObject.FindWithTag("Player");
  10.     pX = player.transform.position.x;
  11.     pZ = player.transform.position.z;
  12.     mX = transform.position.x;
  13.     mZ = transform.position.z;
  14.     var rotation : float;
  15.     //GameObject.FindObjectOfType<--research
  16.     speed = 10; //Bump up speed, monster is chasing (running)
  17.     while(state==move_state.chasing){
  18.         playerDist = Vector3.Distance(player.transform.position, transform.position);
  19.         if(playerDist<=2){
  20.             attack();
  21.         }
  22.         if((pX>mX||pX<mX)&&(pZ>mZ||pZ<mZ)){
  23.             if(pX>mX){
  24.                 rotation = player.transform.position.x-transform.position.x;
  25.                 transform.Rotate(Vector3.up*Time.deltaTime*rotation);
  26.             }
  27.             else if(pX<mX){
  28.                 rotation = transform.position.x-player.transform.position.x;
  29.                 transform.Rotate(Vector3.up*Time.deltaTime*rotation);
  30.             }
  31.             x = Time.deltaTime * speed;
  32.             z = Time.deltaTime * speed;
  33.             transform.Translate(0,0,z);
  34.         }
  35.         else if(pX>mX||pX<mX){ //Choose whether to go forward/backward or left/right
  36.             if(playerDist>=hearDist){
  37.                 setState(move_state.searching);
  38.                 turn = false;
  39.             }
  40.             x = Time.deltaTime * speed;
  41.             transform.Translate(x,0,0); //Translate forward 6 units per second
  42.         }
  43.         else if(pZ>mZ||pZ<mZ){
  44.             if(playerDist>=hearDist){
  45.                 setState(move_state.searching);
  46.                 turn = false;
  47.             }
  48.             z = Time.deltaTime * speed;
  49.             transform.Translate(0,0,z); //Same settings as x move
  50.         }
  51.         yield; //Wait until next frame
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement