【问题标题】:How to pass variables from one object in one scene to another object in another scene in Unity3D?如何将变量从一个场景中的一个对象传递到 Unity3D 中另一个场景中的另一个对象?
【发布时间】:2012-11-14 08:35:02
【问题描述】:

是否可以将变量从一个场景中的一个对象传递到另一个场景中的另一个对象?如果是这样,我需要将 unityNameSelected 全局变量从附加在场景 2 中的对象中的第一个脚本(如下所列)传递到附加到场景 1 中另一个对象的第二个脚本。感谢您的帮助。

{

        while ( reader.Read() ) 
        {
            if ( reader.NodeType == XmlNodeType.Element ) 
            {
                if ( reader.HasAttributes ) 
                {
                    if ( reader.GetAttribute("UnityName") != null ) 
                    {
                        unityName = reader.GetAttribute("UnityName");
                        if(!values.Contains(unityName))
                        {
                   values.Add(unityName);
                   DontDestroyOnLoad(GameObject.Find("unityName")); 


                         unityNameSelected = unityName;
                    //string[]  unityNameSelected3 = {unityName};
                    //   unityNameSelected =unityNameSelected3;
                           print(unityNameSelected.ToString());

          }
                   }
                            }
                    }
                }}

【问题讨论】:

    标签: c# object unity3d


    【解决方案1】:

    看来您已经知道如何防止对象被统一销毁 (DontDestroyOnLoad)。因此,您现在需要做的就是将它存储在某个地方,在下一个关卡加载后仍然可以访问它。一个简单的方法是使用静态变量:

    public class MyScript : MonoBehaviour
    {
        public static GameObject unityNameSelected;
    }
    

    【讨论】:

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