Exemplo n.º 1
0
 // Update is called once per frame
 void Update()
 {
     towerList = GeneralPool.get_towerList();
     healthBarTransform.position = Camera.main.WorldToScreenPoint(healthBarDefineTransform.position);
     Detect();
     if (enemyState == BasicInfo.enemyStates.Stop)
     {
         UpdateEnemyByState();
     }
     else
     {
         if (detectedTowerList.Count > 0)
         {
             enemyState = BasicInfo.enemyStates.Attack;
             UpdateEnemyByState();
             enemyLastState = BasicInfo.enemyStates.Attack;
         }
         else
         {
             enemyState = BasicInfo.enemyStates.Walk;
             UpdateEnemyByState();
             enemyLastState = BasicInfo.enemyStates.Walk;
         }
     }
     // UpdateEnemyByState();
 }
Exemplo n.º 2
0
    public void InitWithData(GameObject path)
    {
        int pathNodeCount = path.transform.childCount;

        // if(pathNodeCount>1)
        // {
        //     transform.DOLookAt(path.transform.GetChild(1).transform.position,0,AxisConstraint.Y,Vector3.up);
        // }
        for (int i = 0; i < pathNodeCount; ++i)
        {
            pathList.Add(path.transform.GetChild(i).transform.position);
        }
        Vector3[] pathArray = pathList.ToArray();
        float     duration  = (pathNodeCount - 1) / (enemyMoveSpeed / 2);

        pathMoveTween = this.transform.DOPath(pathArray, duration, PathType.Linear, PathMode.Full3D, 10, new Color(20, 20, 20));
        pathMoveTween.OnWaypointChange(LookToNextPoint);

        pathMoveTween.Pause();
        enemyState = BasicInfo.enemyStates.Stop;


        pathMoveTween.OnKill(delegate
        {
            enemyState = BasicInfo.enemyStates.Stop;
        });
    }
Exemplo n.º 3
0
 public void StartWalk()
 {
     enemyState = BasicInfo.enemyStates.Walk;
 }