Ejemplo n.º 1
0
    // Start is called before the first frame update
    void Start()
    {
        nav = GetComponent <NavMeshAgent>();
        nav.SetDestination(endPoint[index].position);//获取目标点位置
        temp = nav.speed;

        tempSpeed = DestoryScript.speed;
        enemyYD   = new EnemyYD(StartPoint, transform, nav, tempSpeed, new EnemyNav());
    }
Ejemplo n.º 2
0
        /// <summary>
        /// 在(ConcreteStateA)状态下,符合条件则开启(ConcreteStateB)敌人追击角色功能。
        /// </summary>
        /// <param name="enemyYD"></param>
        public override void Handle(EnemyYD enemyYD)
        {
            Transform    StartPoint = enemyYD.StartPoint;
            Transform    Enemys     = enemyYD.Enemys;
            NavMeshAgent Nav        = enemyYD.Nav;
            float        length     = (StartPoint.GetChild(0).position - Enemys.position).sqrMagnitude;

            if (length < 16f)
            {
                Debug.Log("追击角色");
                Nav.isStopped        = true;
                Enemys.position      = Vector3.MoveTowards(Enemys.position, StartPoint.GetChild(0).position, Time.deltaTime * 1.65f);
                DestoryScript.speed += 1.10f * Time.deltaTime;
            }
            else
            {
                enemyYD.EnemyYDState = new EnemyNav();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 在(ConcreteStateB)状态下,符合条件则开启(ConcreteStateA)敌人自动寻路(不追击角色)功能。
        /// </summary>
        /// <param name="enemyYD"></param>
        public override void Handle(EnemyYD enemyYD)
        {
            Transform    StartPoint = enemyYD.StartPoint;
            Transform    Enemys     = enemyYD.Enemys;
            NavMeshAgent Nav        = enemyYD.Nav;
            float        tempSpeed  = enemyYD.TempSpeed;
            float        length     = (StartPoint.GetChild(0).position - Enemys.position).sqrMagnitude;

            if (length >= 16)
            {
                Debug.Log("自动寻路");
                Nav.isStopped       = false;
                DestoryScript.speed = tempSpeed;
            }
            else
            {
                enemyYD.EnemyYDState = new EnemyZJ();
            }
        }
Ejemplo n.º 4
0
 public abstract void Handle(EnemyYD enemyYD);