gpt4 book ai didi

c# - 如果按钮在 1 秒内按下 X 次,执行此操作?

转载 作者:太空狗 更新时间:2023-10-30 01:00:14 26 4
gpt4 key购买 nike

我想知道如何实现,例如,如果按钮“F”在一秒钟内被按下 5 次,//做某事。

不过呢?起初,我想做这样的事情:

private float totalCount = 0f;
private float countOne = 1f;

void Update(){

if(Input.GetKeyDown(KeyCode.F)){

totalCount += countOne;
}

if (totalCount == 5){

// do some thing
}
}

但显然,这并不是我想要的。那么我该如何实现呢?协程?

最佳答案

Rx 是执行此操作的理想方式。您可以使用一秒钟的简单缓冲区。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reactive.Linq;

namespace Anything
{
public class Program
{
public static void Main(string[] _)
{
var sw = Stopwatch.StartNew();

Keys()
.ToObservable()
.Select(x => new
{
Value = x,
Seconds = sw.Elapsed.TotalSeconds
})
.Buffer(5, 1)
.Where(xs => xs.Last().Seconds - xs.First().Seconds <= 1.0)
.Subscribe(ks => Console.WriteLine($"More than five! {ks.Count}"));
}

public static IEnumerable<ConsoleKeyInfo> Keys()
{
while (true)
{
yield return Console.ReadKey(true);
}
}
}
}

关于c# - 如果按钮在 1 秒内按下 X 次,执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48166579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com