【问题标题】:When certain button pressed change the motion of the prefab当按下某个按钮时,会改变预制件的运动
【发布时间】:2019-12-09 05:49:36
【问题描述】:

首先,当我启动程序时,预制件应该以round() 方法开始。现在,当我按下 m 时,预制件应该有动作 random() 。当我按 agian m 时,它应该返回到方法 round()

我的代码不起作用。当我按下 m 时,random() 只运行了一秒钟。

...
    bool mode = false;
    ....

         void Update()
            {

                round();
                if (Input.GetKeyDown("m") && mode == true) {
                    round();
                    mode = false;
                }else if (Input.GetKeyDown("m") && mode == false)
                {
                    random();
                    mode = true;
                } 
            }
...

提前感谢您! :)

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    首先每次更新调用round();,然后在按住 m 键时每隔一帧调用random()

    试试

    bool allowModeChange=true;
    ...
    void Update()
    {
        if (Input.GetKeyDown("m"))
        {
            if (allowModeChange)
            {
                mode = !mode;
                allowModeChange = false;
            }
        }
        else
        {
            allowModeChange = true;
        }
        if (mode)
        {
            random();
        } 
        else 
        {
            round();
        }
    }
    

    allowModeChange 可防止您在按住 m 键时每帧翻转模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多