Advertisement
Wonzay

Untitled

Jan 16th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. [CreateAssetMenu]
  5. public class ChasingBrain : EnemyBrain
  6. {
  7.     public override void Think(Enemy enemy, Player myPlayer)
  8.     {
  9.         // var disc = Vector3.Distance(myPlayer.transform.position, enemy.transform.position);
  10.    
  11.         if (enemy.transform.position == myPlayer.transform.position)
  12.         {
  13.             return;
  14.         }
  15.  
  16.         if (Vector3.Distance(enemy.transform.position, myPlayer.transform.position) > PlayerDetectionRange)
  17.         {
  18.             Movement(enemy.transform);
  19.         }
  20.         else
  21.         {
  22.             var dir = myPlayer.transform.position - enemy.transform.position;
  23.             dir = dir.normalized;
  24.  
  25.  
  26.             /*
  27.             var cpV = new Vector3(Mathf.Abs(v.x), Mathf.Abs(v.y)); // Made using Sinus <3
  28.  
  29.             var sin1 = Vector3.Angle(new Vector3(0, 1), cpV);
  30.             var sin2 = Vector3.Angle(new Vector3(1, 0), cpV); */
  31.  
  32.             if (Mathf.Abs(dir.x) >= Mathf.Abs(dir.y))
  33.             {
  34.                 dir = new Vector3(Mathf.Sign(dir.x), 0);
  35.                 if (CanMove(enemy.transform.position, dir))
  36.                     enemy.transform.position += dir;
  37.                 else if (Vector3.Distance(myPlayer.transform.position, enemy.transform.position + Vector3.up) >=
  38.                     Vector3.Distance(myPlayer.transform.position, enemy.transform.position + Vector3.down))
  39.                 {
  40.                     dir = Vector3.down;
  41.                     if (CanMove(enemy.transform.position, dir))
  42.                         enemy.transform.position += dir;                  
  43.                 }
  44.                 else if (CanMove(enemy.transform.position, Vector3.up))
  45.                     enemy.transform.position += Vector3.up;
  46.  
  47.             }
  48.             else
  49.             {
  50.                 dir = new Vector3(0, Mathf.Sign(dir.y));
  51.                 if (CanMove(enemy.transform.position, dir))
  52.                     enemy.transform.position += dir;
  53.                 else if (Vector3.Distance(myPlayer.transform.position, enemy.transform.position + Vector3.left) >=
  54.                     Vector3.Distance(myPlayer.transform.position, enemy.transform.position + Vector3.right))
  55.                 {
  56.                     dir = Vector3.right;
  57.                     if (CanMove(enemy.transform.position, dir))
  58.                         enemy.transform.position += dir;
  59.                 }
  60.                 else if (CanMove(enemy.transform.position, Vector3.left))
  61.                         enemy.transform.position += Vector3.left;
  62.             }
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement