// Update is called once per frame void Update() { //count down death timer and destroy if it reaches zero if (deathDelay != 0) { deathDelay--; if (deathDelay == 0) { Destroy(gameObject); } } //update timer and change state updateTimer(); changeState(); //movement based on state if (currentState == EnemyState.Run) //running { //turn away if not ndelayed by a boundary collision //if (currentDelay-- <= 0 && transform.position.x > levelBehavior.WorldMin.x + buffer && // transform.position.x < levelBehavior.WorldMax.x - buffer && // transform.position.y > levelBehavior.WorldMin.y + buffer && // transform.position.y < levelBehavior.WorldMax.y - buffer) //{ if (currentDelay-- <= 0 && player != null) { //transform.up = (transform.position - player.transform.position); directionV = (transform.position - player.transform.position); directionV.Normalize(); } //move in new direction //transform.position += (Speed * Time.smoothDeltaTime) * transform.up; transform.position += (Speed * Time.smoothDeltaTime) * directionV; } else if (currentState == EnemyState.Stunned) //stunned still { transform.Rotate(transform.forward, Time.deltaTime * TurnSpeed); } else if (levelBehavior.Movement) //normal { //transform.position += (Speed * Time.smoothDeltaTime) * transform.up; transform.position += (Speed * Time.smoothDeltaTime) * directionV; } //check boundary collision LevelBehavior.WorldBoundStatus status = levelBehavior.ObjectCollideWorldBound(GetComponent <Renderer>().bounds); if (status != LevelBehavior.WorldBoundStatus.Inside) { //Debug.Log("collided position: " + this.transform.position); newDirection(); currentDelay = DELAY; } //clamp to world levelBehavior.ClampToWorld(transform, 1.0f); }
// Update is called once per frame void Update() { //move forward transform.position += (speed * Time.smoothDeltaTime) * transform.up; //check boundary collision LevelBehavior.WorldBoundStatus status = levelBehavior.ObjectCollideWorldBound(GetComponent <Renderer>().bounds); if (status != LevelBehavior.WorldBoundStatus.Inside) { //Debug.Log("collided position: " + this.transform.position); Destroy(gameObject); } }