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到新创建的空场景(使用上面的代码)。
答案 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