创建所选层次结构GameObject的新场景

时间:2016-05-05 12:23:04

标签: c# unity3d editor scene

  void OnGUI() {

        GUILayout.Label("Hirarchey GameObject to Scene Conversion", EditorStyles.boldLabel);
        gameObjectName = EditorGUILayout.TextField("Text Field", gameObjectName);

        if (GUILayout.Button("Generate Scene")) {
            EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects);
            EditorApplication.SaveScene();

        }

此代码段在编辑器模式按钮上运行。当我点击按钮时,它正在制作一个空场景。它会提示窗口输入场景名称并保存。但我想使用代码提供名称。这是否可以在没有弹出窗口的情况下手动输入场景名称?另外我想打开场景hirarchey gameobject到新创建的空场景(使用上面的代码)。

1 个答案:

答案 0 :(得分:2)

我认为您可以正常创建GameObjects,然后使用SceneManager.MoveGameObjectToScene移动到新场景:

Scene newScene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects);
GameObject go = new GameObject("GameObject");
SceneManager.MoveGameObjectToScene(go, newScene);
EditorApplication.SaveScene(newScene, path);

您还可以在SaveScene上设置路径以避免名称提示。

文档:https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.MoveGameObjectToScene.html