2016-05-05 5 views
1
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(); 

     } 

このコードスニペットは、エディタモードボタンで実行されます。ボタンをクリックすると、空のシーンが作成されます。シーン名を入力して保存するようにウィンドウが表示されます。しかし、私はコードを使って名前を提供したい。これは、シーン名の手動入力のためのポップアップなしで動作する可能性がありますか?さらに、新しく作成された空のシーン(上記のコードを使用)にscene hirarchey gameオブジェクトを開きたい選択した階層の新しいシーンを作成する

答えて

2

私はあなたが正常にゲームオブジェクトを作成し、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

+0

ありがとうbivisが、新しく作成されたシーンを見つけ、完全な質問を読み取るために –

+0

NewScene方法は、シーンを返しますしてください。後で使用するために保存することができます。私はそれを示す私の答えを更新しました。私はあなたが名前のプロンプトなしでそれを作りたいと思うことを知っています、あなたはこのコードをどこに置いていますか? – Bivis

+0

こんにちは、SaveScene()でパスを設定すると、名前の入力を避けることができると思います。もう一度答えを更新しました。 – Bivis

関連する問題