【问题标题】:C# question about: Do...While Loops (on Unity)关于 C# 的问题:Do...While 循环(在 Unity 上)
【发布时间】:2021-12-03 21:28:38
【问题描述】:
  1. 为什么MyInt 增加到1 以上,而while 条件是false
public class HelloStackoverflow : MonoBehaviour {
    
    int myInt = 0;
    public bool myBool = false; 

    void Update () {
        
        print(myInt);
        do{
            myInt++;
        }while(myBool == true);

    }
}

-> 我希望 myInt 达到 1 而不是更多,因为 myBool 永远不会设置为 true。我知道Do...WhileDo 部分在检查条件之前至少会执行一次,以查看它是否应该循环。

  1. 那么,当我在 Inspector 中将 myBool 设置为 true 时,为什么相同的代码会崩溃? -> 而我认为myInt 会达到 1(第一季度),然后会更进一步(而不是之前)myBool 被检查员设置为true

  2. 为什么我觉得这个Do...Whilebasic 这么笨?

请原谅我的英语

【问题讨论】:

  • 如果是真的统一会崩溃:) 作为更新中的无限循环,非常好。然而,下面的答案是正确的。它将每帧递增。所以会很快上升。

标签: loops unity3d crash


【解决方案1】:

Update 被多次调用。 (我想每一帧。我自己也是 Unity 新手。)每次调用 Update,你的 do...while 循环运行一次,递增 myInt。当您将 myBool 设置为 true 时,它​​会崩溃(或变得无响应),因为它永远不会退出循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多