【问题标题】:How to import number from scene 1 to scene 2? [duplicate]如何将数字从场景 1 导入场景 2? [复制]
【发布时间】:2019-04-23 13:20:18
【问题描述】:

如何从另一个场景导入号码?例如:

场景1脚本

if(...) {
   a = 1;
} else {
   a = 0;
}

如何将a导入下一个场景?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我这样做的方法是使场景加载异步,并通过代码将值传递给应该在下一个场景中接收它的对象:

    var valueToPass = 2;
    var asyncOp = SceneManager.LoadSceneAsync("otherScene");
    asyncOp.OnCompleted += () => 
    {
        // this code runs once the second scene is loaded
        FindObjectOfType<SomeOtherObject>().PropertyToFill = valueToPass;
    }
    

    我在脑海中写下了代码,它可能无法编译(手头没有 Unity 来测试它)但这是一般的想法。

    【讨论】:

      【解决方案2】:

      您可以通过使用 a 作为静态变量来做到这一点。它会保留价值。

      public static int a;

      【讨论】:

      • 坏主意,静态值会持续一段时间并成为可能的错误来源。
      • 值可以通过多种方式传递到另一个场景。其中最常见的是: * PlayerPrefs * 静态变量
      • 确实如此,但静态问题之前让我很头疼。
      猜你喜欢
      • 2014-03-27
      • 1970-01-01
      • 2014-07-24
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多