如何将变量从一个场景中的一个对象传递到Unity3D中另一个场景中的另一个对象?

时间:2012-11-14 08:35:02

标签: c# object unity3d

是否可以将变量从一个场景中的一个对象传递到另一个场景中的另一个对象?如果是这样,我需要将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());

          }
                   }
                            }
                    }
                }}

1 个答案:

答案 0 :(得分:2)

看起来你已经知道如何防止对象被统一(DontDestroyOnLoad)破坏。因此,您现在需要做的就是将它存储在下一级加载后仍可访问的某个位置。一个简单的方法是静态变量:

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