【问题标题】:Most efficient way to have many inputs [duplicate]拥有许多输入的最有效方法[重复]
【发布时间】:2021-12-08 04:12:38
【问题描述】:

很难描述我在这里寻找的确切内容,但我可以提供一个示例。 假设我有一系列输入,比如数字行,我有一个输入,二和三等。我想设置当我按下这些键时发生的事情,比如

private void Update()
    {
        if(Input.GetButton("One"))
        {
            doThing1();
        }
         if(Input.GetButton("Two"))
        {
            doThing2();
        }
     //and so on and so on
    }

我对 Unity 或 C# 没有那么丰富的经验,所以我总是想问,因为可能有一些东西可以让这个过程变得更简单,而不是有 10 个或更多的 if 语句。

【问题讨论】:

标签: c# unity3d


【解决方案1】:

你可以做一个for循环:

for ( int i = 0; i < 10; ++i )
 {
     if ( Input.GetKeyDown( "" + i ) )
     {
         print(i);
     }
 }

或者获取按下按钮的名称:

string name = EventSystem.current.currentSelectedGameObject.name;

...

switch (name) {
   case KeyCode.Alpha1.ToString() : break;
   case KeyCode.Alpha2.ToString() : break;
   case KeyCode.Alpha3.ToString() : break;
   ...
}

【讨论】:

  • 打字效率很高,是的。高效运行,见鬼!
  • @Immersive,从来没有说过。
猜你喜欢
  • 1970-01-01
  • 2019-03-19
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 2022-06-17
相关资源
最近更新 更多