void Idle() { if (Search()) { slimeState = SLIMESTATE.MOVE; } }
// Update is called once per frame void Update() { if (exp >= needExp) { slimeState = SLIMESTATE.LEVELUP; } dicState[slimeState](); }
void LevelUp() { exp = 0; level++; needExp = level * 2; transform.localScale = new Vector3(1.0f, 1.0f, 1.0f) * level; slimeState = SLIMESTATE.IDLE; }
void Move() { if (target == null) { slimeState = SLIMESTATE.IDLE; } Vector3 moveDirection = target.transform.position - transform.position; moveDirection.Normalize(); characterController.Move(moveDirection * level * Time.deltaTime); }
private void OnControllerColliderHit(ControllerColliderHit hit) { if (hit.gameObject.layer == 9) { Slime temp = hit.gameObject.GetComponent <Slime>(); if (temp != null) { if (level >= temp.level) { exp += temp.level; temp.slimeState = SLIMESTATE.DEAD; } else { temp.exp += level; slimeState = SLIMESTATE.DEAD; } } } }