/// <summary>更新対象のメーター値設定 /// <param name="quizType">クイズ種別</param> /// <param name="fillAmount">メーター表示割合</param> /// </summary> public void setFillAmount(GamePlayInfo.QuizType quizType, float fillAmount) { if (GamePlayInfo.QuizType.CareerQuiz == quizType) { careerMeter.fillAmount = fillAmount; } else { rankMeter.fillAmount = fillAmount; } }
/// <summary>メーターの値を増やす /// <param name="quizType">クイズ種別</param> /// <param name="upperLimit">メーターを増やす上限</param> /// </summary> private async UniTask meterIncrease(GamePlayInfo.QuizType quizType, float upperLimit) { // メーターは0よりちょっと多いところから表示開始 float nextAmount = StatusPanel.Fill_AMOUNT_BEFORE_DOWN; while (nextAmount < upperLimit) { nextAmount = Mathf.Min(upperLimit, statusPanelController.getFillAmount(quizType) + StatusPanel.Fill_AMOUNT_UPDATE_STEP); statusPanelController.setFillAmount(quizType, nextAmount); await UniTask.DelayFrame(1); } }
/// <summary>メーターの値を減らす /// <param name="quizType">クイズ種別</param> /// <param name="upperLimit">メーターを減らす下限</param> /// </summary> private async UniTask meterDecrease(GamePlayInfo.QuizType quizType, float lowerLimit) { // float nextAmount = StatusPanel.Fill_AMOUNT_MAX; // メーターが止まった状態のMAX表示は0.95fとするので、メーター更新時に一瞬メーターが増えないように考慮 float nextAmount = StatusPanel.Fill_AMOUNT_BEFORE_UP; while (nextAmount > lowerLimit) { nextAmount = Mathf.Max(lowerLimit, statusPanelController.getFillAmount(quizType) - StatusPanel.Fill_AMOUNT_UPDATE_STEP); statusPanelController.setFillAmount(quizType, nextAmount); await UniTask.DelayFrame(1); } }
/// <summary>更新対象のメーター値取得 /// <param name="quizType">クイズ種別</param> /// <returns>メーター表示割合</returns> /// </summary> public float getFillAmount(GamePlayInfo.QuizType quizType) { return((GamePlayInfo.QuizType.CareerQuiz == quizType) ? careerMeter.fillAmount : rankMeter.fillAmount); }