private void ScanArea() { Time_PatrolWaitTime_Current += Time.deltaTime; if (Time_PatrolWaitTime_Current >= Time_PatrolWaitTime_Total) { PatrolPoints_Index++; if (PatrolPoints_Index >= PatrolPoints.Count) { PatrolPoints_Index = 0; } SetMoveTarget(PatrolPoints[PatrolPoints_Index].transform.position); StatePatrol = EnemyState_Patrol.MovingToPatrolPoint; Time_PatrolWaitTime_Current = 0; } }
private void MoveToPatrolPoint() { // set facing direction Vector3 lookAtPosition = new Vector3(TargetPosition.x, transform.position.y, TargetPosition.z); transform.LookAt(lookAtPosition); transform.position = Vector3.MoveTowards(transform.position, TargetPosition, MoveSpeed * Time.deltaTime); // close enough to taret? if ((transform.position - TargetPosition).magnitude < PositionClosityThreshold) { transform.position = TargetPosition; StatePatrol = EnemyState_Patrol.Scanning; } }
private void Start() { SetMoveTarget(PatrolPoints[PatrolPoints_Index].transform.position); StatePatrol = EnemyState_Patrol.MovingToPatrolPoint; }