【问题标题】:How can I calculate and reset Drift Score in Unity?如何在 Unity 中计算和重置漂移分数?
【发布时间】:2022-06-23 18:45:02
【问题描述】:

我希望你做得很好。我需要帮助解决一个问题。我正在开发赛车游戏,我想在漂移时更新分数。我想重置我的分数,即更新分数,即在驾驶时获得的分数,然后将其添加到 mainScore 为 0。到目前为止,我相信我已经做到了。但是当我再次漂移时,主要分数也重置为0。我能做些什么来解决它?

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class ScoreManager : MonoBehaviour
{
    public int mainScore;
    public int updatingScore;
    private int driftScore;
    
    public Text updatingScoreText;
    public Text mainScoreText;

    private GameManager gameManager;
    private RCC_CarControllerV3 carController;
    private void Awake()
    {
        gameManager = GetComponent<GameManager>();
     
        updatingScoreText.DOFade(0, 0);
    }

    private void Start()
    {
        mainScore = 0;
        driftScore = 0;
        updatingScore = 0;
    }

    private void Update()
    {
        if(carController == null)
            carController = FindObjectOfType<RCC_CarControllerV3>();
        
        UpdateScore();
        
        CarDrift();
        //ResetScore();
        
    }

    void UpdateScore()
    {
        mainScoreText.text = mainScore.ToString();
        updatingScoreText.text = updatingScore.ToString();
    }

    void ResetScore()
    {
            updatingScore = 0;
            driftScore = 0;
            updatingScoreText.text = updatingScore.ToString();
    }
    void CarDrift()
    {
        if (carController != null)
        {
            if(carController.driftingNow == true)
            {
                updatingScoreText.DOFade(1,2f);
                updatingScore++;
                driftScore = updatingScore;

                mainScore = driftScore;
                StartCoroutine(ScoreReset());
            }
            
            else if(carController.instance.driftingNow == false)
            {
                updatingScoreText.DOFade(0,2f);
            }
        }
        
    }

    IEnumerator ScoreReset()
    {
        yield return new WaitForSeconds(2f);
        ResetScore();
    }
}

【问题讨论】:

  • 使用mainScore += driftScore;

标签: c# unity3d


【解决方案1】:
mainScore = driftScore;

将主分数设置为值。如果要将漂移分数添加到主值,则需要这样做

mainScore+= driftScore;

这应该可以解决问题。

【讨论】:

  • 抱歉,这使得数值加起来异常大
【解决方案2】:

你搞清楚如何重置分数了吗?

【讨论】:

    猜你喜欢
    • 2020-07-26
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多