// 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(); }
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; }); }
public void StartWalk() { enemyState = BasicInfo.enemyStates.Walk; }