Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何统一倒计时_C#_Unity3d - Fatal编程技术网

C# 如何统一倒计时

C# 如何统一倒计时,c#,unity3d,C#,Unity3d,在我的例子中,我目前正在进行倒计时或倒计时,但我在正确的时间做某些动作时遇到困难,主要是因为我的脚本有缺陷。我的脚本在这一点上不正确,我是这样做的,当它介于浮动和动作之间时,它会在动作和声音的某个时间之间波动 public float timeValue; private void FixedUpdate() { timeValue += Time.deltaTime; if(timeValue > 25.2 && timeValue < 25.4

在我的例子中,我目前正在进行倒计时或倒计时,但我在正确的时间做某些动作时遇到困难,主要是因为我的脚本有缺陷。我的脚本在这一点上不正确,我是这样做的,当它介于浮动和动作之间时,它会在动作和声音的某个时间之间波动

public float timeValue;

private void FixedUpdate()
{
    timeValue += Time.deltaTime;

    if(timeValue > 25.2 && timeValue < 25.4)
    {
        //Random Animation
    }
    if(timeValue > 26.2 && timeValue < 26.4)
    {
        //Sound Effect connected to Random Animation
    }
}
公共浮点时间值;
私有void FixedUpdate()
{
timeValue+=Time.deltaTime;
if(timeValue>25.2&&timeValue<25.4)
{
//随机动画
}
如果(时间值>26.2和时间值<26.4)
{
//连接到随机动画的声音效果
}
}
正如您所看到的,当timeValue在这些浮动之间命中时,它会随时间而变化,因为它不会每次命中相同的浮动。我需要一个解决方案来正确地完成这一点。

您使用的是物理循环的FixedUpdate(),您需要更新(),FixedUpdate()循环被定时以特定的频率运行,可能会弄乱deltaTime。您也可以使用Time.Time来获取自应用程序启动以来的总时间

private void Update()
{
    timeValue += Time.deltaTime;

    if(timeValue > 25.2 && timeValue < 25.4)
    {
        //Random Animation
    }
    if(timeValue > 26.2 && timeValue < 26.4)
    {
        //Sound Effect connected to Random Animation
    }
}
private void Update()
{
timeValue+=Time.deltaTime;
if(timeValue>25.2&&timeValue<25.4)
{
//随机动画
}
如果(时间值>26.2和时间值<26.4)
{
//连接到随机动画的声音效果
}
}
您还可以使用Time.Time来获取自应用程序启动以来的总时间,从而简化代码

private void Update()
{

    if(Time.time > 25.2 && Time.time < 25.4)
    {
        //Random Animation
    }
    if(Time.time > 26.2 && Time.time < 26.4)
    {
        //Sound Effect connected to Random Animation
    }
}
private void Update()
{
如果(Time.Time>25.2&&Time.Time<25.4)
{
//随机动画
}
如果(Time.Time>26.2&&Time.Time<26.4)
{
//连接到随机动画的声音效果
}
}

除了Vansmos的答案,您还可以使用其他时间的方法,如
DateTime

DateTime
具有不同的功能,以毫秒、秒、小时等为单位显示当前时间。 例如:

var timestamp = DateTime.Now.ToFileTime();

//output: 132260149842749745

这里提到了不同的方法:

Time.deltaTime自动返回Update和FixedUpdate tho中的正确deltaTime