制作所选层次结构游戏对象的新场景
Make new scene of selected hierarchy GameObject
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();
}
此代码片段在编辑器模式按钮上运行。当我点击按钮时,它正在制作一个空场景。它会提示 window 输入场景名称并保存。但我想使用代码提供名称。这是否可以在没有弹出窗口的情况下工作以手动输入场景名称?此外,我想将场景 hirarchey 游戏对象打开到新创建的空场景(使用上面的代码)。
我认为您可以正常创建游戏对象,然后使用 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
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();
}
此代码片段在编辑器模式按钮上运行。当我点击按钮时,它正在制作一个空场景。它会提示 window 输入场景名称并保存。但我想使用代码提供名称。这是否可以在没有弹出窗口的情况下工作以手动输入场景名称?此外,我想将场景 hirarchey 游戏对象打开到新创建的空场景(使用上面的代码)。
我认为您可以正常创建游戏对象,然后使用 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