private void OnTriggerExit2D(Collider2D collision) { Debug.Log(collision.name + " exited charge zone"); ams = AngerMovementState.Neutral; playerInView = false; inViewCount = 0; }
// Update is called once per frame void Update() { Vector2 position = transform.position; switch (ams) { case AngerMovementState.Neutral: //Trigger Walk Animation if (Random.Range(0, 1000) < 20 || !((position.x >= (startLocation.x - patrolDistance)) && (position.x <= (startLocation.x + patrolDistance)))) { transform.Rotate(0, 180, 0); positionChangeModifier = positionChangeModifier * (-1); } transform.position = new Vector3(transform.position.x + (0.02f * positionChangeModifier), transform.position.y, transform.position.z); break; case AngerMovementState.Alert: //Trigger Alert Animation if (playerInView && inViewCount >= 10) { ams = AngerMovementState.Charging; } break; case AngerMovementState.Charging: //Trigger Charge Animation transform.position = new Vector3(transform.position.x + (0.095f * positionChangeModifier), transform.position.y, transform.position.z); break; default: ams = AngerMovementState.Neutral; break; } }
// Start is called before the first frame update void Start() { ams = AngerMovementState.Neutral; startLocation = transform.position; playerInView = false; inViewCount = 0; }
private void OnTriggerEnter2D(Collider2D collision) { Debug.Log(collision.name + " entered charge zone"); ams = AngerMovementState.Alert; playerInView = true; }