// public void ResetRecord(){ // record = 0.0f; // SetRecord(); // } public void ResetBoat() { waveLine.CalSpeed(0.0f); isFinish = false; boatPowerStatus = BoatPowerStatus.NoPower; waterPower = 0.001f; record = 0.0f; maxRecord = 0.0f; limitedPowerTime = 1.0f; powerLevel = 0; bestSpeed = 0.0f; avgSpeed = 0.0f; totalTime = 0.0f; SetRecord(); }
void Update() { //after coroutine 3s, count time float speed = 0.0f; for (int j = 0; j < chairMovementsList.Count; j++) { speed += chairMovementsList[j].speed; chairMovementsList[j].speed = 0.0f; } //when finished if (record <= 0.0f) { FinishRowing(); isFinish = true; } //cal speed and record time if (!isFinish) { totalTime += Time.deltaTime; for (int i = 0; i < chairMovementsList.Count; i++) { if (chairMovementsList[i].chairStatus == ChairMovement.ChairStatus.Rowing) { boatPowerStatus = BoatPowerStatus.Power; //Do Power totalSpeed += speed * 0.01f; if (speed > 0.1f) { totalSpeed *= (1.0f + powerLevel * 0.01f); } break; } else { boatPowerStatus = BoatPowerStatus.NoPower; } } } totalSpeed -= waterPower; if (totalSpeed < 0.0f) { totalSpeed = -waterPower; } else if (totalSpeed > 1.0f) { //if total speed is begger than 1.0f, it too much....... Debug.Log("Over Pace" + totalSpeed); totalSpeed = 1.0f; } powerSpeed.text = string.Format("{0:F0} watt", totalSpeed * 1000); waveLine.CalSpeed(totalSpeed); record -= totalSpeed; SetRecord(); //best speed if (bestSpeed < totalSpeed * 1000) { bestSpeed = totalSpeed * 1000; } //avg speed if (avgSpeed < 0.01f) { avgSpeed = totalSpeed * 1000; } else if (!isFinish) { avgSpeed += totalSpeed * 1000; avgSpeed /= 2; } //power coeffactor if (isCatch) { powerCoeffcient.fillAmount -= 1.0f / (powerCoeffcientTime) * Time.deltaTime; if (powerCoeffcient.fillAmount <= 0.01f) { isCatch = false; SetPowerLevel(); } } else { //count time 값이 들어가야한다. powerCoeffcient.fillAmount = 1.0f; } }