C# 如何使用计时器逐渐增加我的分数?

C# 如何使用计时器逐渐增加我的分数?,c#,unity3d,unity2d,C#,Unity3d,Unity2d,我目前正在创建一个隐藏对象游戏,我一直被困在如何添加计时器和倒计时到我的游戏。我目前有一个分数,它是在所有对象都被点击后生成的,但是如果用户点击每个对象后分数逐渐上升,我会很高兴。以下是我目前为止的代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class trackingclicks : MonoBehaviour { //static variable

我目前正在创建一个隐藏对象游戏,我一直被困在如何添加计时器和倒计时到我的游戏。我目前有一个分数,它是在所有对象都被点击后生成的,但是如果用户点击每个对象后分数逐渐上升,我会很高兴。以下是我目前为止的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class trackingclicks : MonoBehaviour {

    //static variable added to count users clicks
    public static int totalclicks=0;
    //"mouseclick" keycode variable to look for mouse click
    public KeyCode mouseclick;

    public Transform scoreObj;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
    //checks the change in time, aka how much time has passed- bonus time starts at 90
        clickcontrol.timeBonus -= Time.deltaTime;

        if (clickcontrol.remainItems == 0) 
        {
            clickcontrol.totalScore += (70 + (Mathf.RoundToInt(clickcontrol.timeBonus)));
            scoreObj.GetComponent<TextMesh>().text = "Score : " + clickcontrol.totalScore;
            clickcontrol.remainItems = -1;

        }
    //Check for mouse click
        if (Input.GetKeyDown (mouseclick)) 
        {
            totalclicks += 1;

        }

        if (totalclicks >= 5) 
        {
            Debug.Log ("FAIL!!!");
            totalclicks = 0;

        }
    }
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类跟踪点击:单行为{
//添加静态变量以统计用户的点击次数
公共静态int totalclicks=0;
//“mouseclick”keycode变量查找鼠标单击
公钥密码鼠标点击;
公共目标;
//用于初始化
无效开始(){
}
//每帧调用一次更新
无效更新(){
//检查时间的变化,也就是经过了多少时间-奖励时间从90开始
单击control.timeBonus-=Time.deltaTime;
如果(clickcontrol.remainItems==0)
{
clickcontrol.totalScore+=(70+(Mathf.RoundToInt(clickcontrol.timeBonus));
scoreObj.GetComponent().text=“Score:+单击control.totalScore;
单击control.remainItems=-1;
}
//检查鼠标点击
if(Input.GetKeyDown(鼠标单击))
{
总点击次数+=1;
}
如果(总点击次数>=5)
{
Log(“FAIL!!!”;
总点击次数=0;
}
}

}

您可以对计时器使用协程(协程在一定时间后执行代码)。如果你想让你的分数在玩家点击一个物体后逐渐增加(我想这就是你要问的),那么类似的事情应该会起作用:

public int score;

IEnumerator IncrementScore(int amount, int interval) { //amount is the amount of score to add over the time, interval is the time IN SECONDS between adds
    for (int i = 0; i < amount; i++) {
    yield return new WaitForSeconds(interval);
    score++;
    }

}
public int评分;
IEnumerator IncrementScore(int amount,int interval){//amount是一段时间内要添加的分数量,interval是两次添加之间的时间(以秒为单位)
对于(int i=0;i

我不确定分数变量在哪里,所以我做了一个新的;您可以将其设置为自己的,无论它位于何处。如果您需要更多帮助,请随时询问。

您可以为计时器使用协程(协程在一定时间后执行代码)。如果你想让你的分数在玩家点击一个物体后逐渐增加(我想这就是你要问的),那么类似的事情应该会起作用:

public int score;

IEnumerator IncrementScore(int amount, int interval) { //amount is the amount of score to add over the time, interval is the time IN SECONDS between adds
    for (int i = 0; i < amount; i++) {
    yield return new WaitForSeconds(interval);
    score++;
    }

}
public int评分;
IEnumerator IncrementScore(int amount,int interval){//amount是一段时间内要添加的分数量,interval是两次添加之间的时间(以秒为单位)
对于(int i=0;i

我不确定分数变量在哪里,所以我做了一个新的;您可以将其设置为自己的,无论它位于何处。如果您需要更多帮助,请随时询问。

嘿,请在您的问题中在此处发布您的代码。而且绝对不是作为图像文件。这样人们就无法复制/通过并测试它。所以你不会得到任何答案;-)只要在问题编辑器中复制/跳过你的代码,选择它并用其中一个按钮将其标记为代码。因此,如果我理解正确,你只想在玩家每次单击对象时添加分数?这个标题太误导人了。它只是推迟了问题的结束,因为它是关于计时器和点击计数的,并且已经有很多答案了@ḞḹáḿíṅḡⱫỏḿƀíé是的,对不起,这正是我试图实现的,但是自从我第一次使用C以来,我在实现这一点上遇到了一些困难。执行
scoreObj.GetComponent()
每次更新都是浪费,请在
Awake()
Start()
中执行一次,并将其分配给
私有TextMesh
,当您想要使用它时,您可以执行
textMesh.text=“Score:+单击control.totalScore嘿,请把你的代码贴在这里,在你的问题里。而且绝对不是作为图像文件。这样人们就无法复制/通过并测试它。所以你不会得到任何答案;-)只要在问题编辑器中复制/跳过你的代码,选择它并用其中一个按钮将其标记为代码。因此,如果我理解正确,你只想在玩家每次单击对象时添加分数?这个标题太误导人了。它只是推迟了问题的结束,因为它是关于计时器和点击计数的,并且已经有很多答案了@ḞḹáḿíṅḡⱫỏḿƀíé是的,对不起,这正是我试图实现的,但是自从我第一次使用C以来,我在实现这一点上遇到了一些困难。执行
scoreObj.GetComponent()
每次更新都是浪费,请在
Awake()
Start()
中执行一次,并将其分配给
私有TextMesh
,当您想要使用它时,您可以执行
textMesh.text=“Score:+单击control.totalScore