unity3d 用协程怎么监听input事件
2个回答
展开全部
貌似正常侦听就可以了需要注意的应该是yield return的时间要很短,否则就会漏掉一些输入。
附上简单的例子:
void Start ()
{
StartCoroutine (demo());
}
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space))
print ("space in update");
}
IEnumerator demo()
{
while (true)
{
yield return new WaitForSeconds (0.002f);
if (Input.GetKeyDown (KeyCode.Space))
print ("space in demo");
}
}
排版貌似不行了,见谅吧...
此外就是我这个方法自认为不是什么好方法,如果路过的大神有好的方法请一定要告诉我,多谢了。
展开全部
void Start()
{
StartCoroutine(ShowInput());
}
IEnumerator ShowInput()
{
for (int i = 0; i < 5; i++)
{
yield return StartCoroutine(WaitInput());
Input.ResetInputAxes();//每次输入完成后,需要重置一下输入
Debug.Log("Input Fire1:" + i.ToString());
}
}
IEnumerator WaitInput()
{
while (!Input.GetButtonDown("Fire1"))
yield return null;
}
{
StartCoroutine(ShowInput());
}
IEnumerator ShowInput()
{
for (int i = 0; i < 5; i++)
{
yield return StartCoroutine(WaitInput());
Input.ResetInputAxes();//每次输入完成后,需要重置一下输入
Debug.Log("Input Fire1:" + i.ToString());
}
}
IEnumerator WaitInput()
{
while (!Input.GetButtonDown("Fire1"))
yield return null;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询