// Update is called once per frame void Update() { _hungryNum -= Time.deltaTime * _hunglyspeed; if (_hungryNum < 0) { _hungryNum = 0; } if (_hungryNum > 1f) { _hungryNum = 1f; } gauge.value = _hungryNum; //ステータスの評価 switch (_sharkStats) { case SharkStats.Sleeping: if (_hungryNum < _hungryLine) { _sharkStats = SharkStats.Hungry; } break; case SharkStats.Hungry: if (_hungryNum >= _hungryLine) { _sharkStats = SharkStats.Sleeping; } EatingShip(); break; case SharkStats.Eating_fish: _eatFishTime -= Time.deltaTime; if (_eatFishTime < 0) { _eatFishTime = 0; _sharkStats = SharkStats.Hungry; } break; case SharkStats.Eating_dust: break; case SharkStats.Eating_mushroom: _panicTimer -= Time.deltaTime; if (_panicTimer < 0) { _panicTimer = 0; _sharkStats = SharkStats.Hungry; } break; } anim.SetInteger("status", (int)_sharkStats); }
void OnCollisionEnter(Collision otherCol) { //Debug.Log("collision"+otherCol.gameObject.name); switch (otherCol.gameObject.tag) { case FISH_L: _hungryNum += RECOVERY_FISH_L; Destroy(otherCol.gameObject); if (_sharkStats != SharkStats.Eating_mushroom) { _eatFishTime = EAT_FISH_TIME; _sharkStats = SharkStats.Eating_fish; } break; case FISH_M: _hungryNum += RECOVERY_FISH_M; Destroy(otherCol.gameObject); if (_sharkStats != SharkStats.Eating_mushroom) { _eatFishTime = EAT_FISH_TIME; _sharkStats = SharkStats.Eating_fish; } break; case FISH_S: _hungryNum += RECOVERY_FISH_S; Destroy(otherCol.gameObject); if (_sharkStats != SharkStats.Eating_mushroom) { _eatFishTime = EAT_FISH_TIME; _sharkStats = SharkStats.Eating_fish; } break; case DUST: if (_sharkStats != SharkStats.Eating_mushroom) { _hungryNum -= RECOVERY_FISH_S; } Destroy(otherCol.gameObject); break; case MASH: _sharkStats = SharkStats.Eating_mushroom; _hungryNum += RECOVERY_FISH_M; _panicTimer = PANIC_TIME; Destroy(otherCol.gameObject); break; case SHIP: EatList.Add(otherCol.gameObject); if (_sharkStats == SharkStats.Hungry) { //start_eat } break; } }