in IndoorSceneSynthesis/ConstraintStochasticIndoorSceneGeneration/Custom/CustomEditor/CSceneCopier.cs [23:214]
public override void OnInspectorGUI() {
GUILayout.Label("Scenes to copy", EditorStyles.boldLabel);
//fromScene = (SceneAsset)EditorGUILayout.ObjectField(fromScene, typeof(SceneAsset), false);
for (int i = 0; i < m_SceneAssets.Count; ++i) {
m_SceneAssets[i] = (SceneAsset)EditorGUILayout.ObjectField(m_SceneAssets[i], typeof(SceneAsset), false);
}
if (GUILayout.Button("Add")) {
m_SceneAssets.Add(null);
m_SceneNames.Add("");
}
GUILayout.Space(8);
GUILayout.Label("New Scene Names", EditorStyles.boldLabel);
//newSceneName = (string)EditorGUILayout.TextField(newSceneName);
for (int i = 0; i < m_SceneAssets.Count; ++i) {
m_SceneNames[i] = (string)EditorGUILayout.TextField(m_SceneNames[i]);
}
GUILayout.Label("\n Copy iThor Scene Tools");
if (GUILayout.Button("Add Structure by Room Type")) {
CopyRoomFromTypes(CSceneBuilderTool.samplingRoomType);
//CopyStructure2NewScene();
}
if (GUILayout.Button("Copy Structure !")) {
//CopyRoomFromTypes();
CopyStructure2NewScene();
}
//if (GUILayout.Button("Add Structure to Kitchens"))
//{
// AddGameObjectToScene();
//}
GUILayout.Label("\n Screenshot Tools");
//if (GUILayout.Button("Take screenshots"))
//{
// GetAllScreenShots();
//}
if (GUILayout.Button("Take screenshot for current scene")) {
string currentScenePath = EditorSceneManager.GetActiveScene().path;
TakeScreenShot(new FileInfo(@currentScenePath));
}
if (GUILayout.Button("Take Screenshots by one click")) {
TakeScreenShotbyOneClick();
}
GUILayout.Label("\n Scene generation debug Tools");
if (GUILayout.Button("Generate scene by hand")) {
GenerateSceneByHand();
}
if (GUILayout.Button("Generate scene one click")) {
GenerateSceneAt();
}
if (GUILayout.Button("Add buildscenes to build settings")) {
EditorBuildSettings.scenes = null;
List<EditorBuildSettingsScene> currentBuildingScenes = new List<EditorBuildSettingsScene>();
void AddScenePath(string scenesAtPath) {
DirectoryInfo scenesDir = new DirectoryInfo(scenesAtPath);
FileInfo[] sceneFileList = scenesDir.GetFiles("*.unity");
foreach (FileInfo sceneFile in sceneFileList) {
//Debug.Log(sceneFile.Name);
currentBuildingScenes.Add(new EditorBuildSettingsScene(scenesAtPath + sceneFile.Name, true));
}
}
AddScenePath("Assets/Custom/BuildTrainingKitchens/");
AddScenePath("Assets/Custom/BuildTrainingLivingrooms/");
AddScenePath("Assets/Custom/BuildTrainingBedrooms/");
AddScenePath("Assets/Custom/BuildTrainingBathrooms/");
//foreach (EditorBuildSettingsScene buildScene in EditorBuildSettings.scenes) {
// currentBuildingScenes.Add(buildScene);
//}
EditorBuildSettings.scenes = currentBuildingScenes.ToArray();
}
if (GUILayout.Button("Post Process Scene")) {
IEnumerator PostProcessScene() {
//post
int debug_index = 0;
DirectoryInfo scenesDir = new DirectoryInfo("Assets/Custom/BuildTrainingKitchens/");
FileInfo[] sceneFileList = scenesDir.GetFiles("*.unity");
foreach (FileInfo sceneFile in sceneFileList) {
EditorSceneManager.OpenScene(sceneFile.ToString());
//delete helpertool
GameObject helpertool = GameObject.Find("HelperTool");
if (helpertool != null) {
DestroyImmediate(helpertool);
}
GameObject dalibao = GameObject.Find("Dalibao");
if (dalibao != null) {
DestroyImmediate(dalibao);
}
GameObject furniturePlacer = GameObject.Find("FurniturePlacer");
if (furniturePlacer != null) {
DestroyImmediate(furniturePlacer);
}
GameObject sceneBuilder = GameObject.Find("SceneBuilder");
if (sceneBuilder != null) {
DestroyImmediate(sceneBuilder);
}
GameObject objectPlacer = GameObject.Find("ObjectPlacer");
if (objectPlacer != null) {
DestroyImmediate(objectPlacer);
}
GameObject decorationPlacer = GameObject.Find("DecorationPlacer");
if (decorationPlacer != null) {
DestroyImmediate(decorationPlacer);
}
//Set celling!!!
StructureObject[] structObjs = Resources.FindObjectsOfTypeAll<StructureObject>();
foreach (StructureObject structObj in structObjs) {
if (structObj.WhatIsMyStructureObjectTag == StructureObjectTag.Ceiling) {
structObj.gameObject.SetActive(true);
}
}
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
//break;
//yield return new EditorWaitForSeconds(1);
yield return null;
//if(debug_index++ > 10) {
// break;
//}
}
}
EditorCoroutineUtility.StartCoroutineOwnerless(PostProcessScene());
//TakeScreenShot(sceneFile);
//SceneAsset oneScene = AssetDatabase.LoadAssetAtPath<SceneAsset>(sceneFile.ToString());
//m_SceneAssets.Add(oneScene);
}
if (GUILayout.Button("Debug 1")) {
string scenesAtPath = "Assets/Custom/Livingrooms/";
DirectoryInfo scenesDir = new DirectoryInfo(scenesAtPath);
FileInfo[] sceneFileList = scenesDir.GetFiles("*.unity");
foreach (FileInfo sceneFile in sceneFileList) {
EditorSceneManager.OpenScene(sceneFile.ToString());
string currentSceneName = EditorSceneManager.GetActiveScene().name.Substring(10); // an integer
var curScene = EditorSceneManager.GetActiveScene();
//curScene.name = currentSceneName;
Debug.Log(scenesAtPath + currentSceneName + ".unity" + " //currentSceneName: " + currentSceneName);
AssetDatabase.RenameAsset(scenesAtPath + "Livingroom" + currentSceneName + ".unity", currentSceneName + ".unity");
//EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
}
}
GUILayout.Label("\n Add Helpertool to scenes");
if (GUILayout.Button("Add Helpertool to scenes")) {
AddHelperTools();
}
if (GUILayout.Button("Delete Helpertool to scenes")) {
DeleteHelperTools();
}
if (GUILayout.Button("Loop over build scene to get object positions")) {
LoopOverBuildSceneToGetObjPos();
}
if (GUILayout.Button("Rename faucets")) {
RenameFaucets();
}
GUILayout.Label("\n For ai2thor 210 version");
if (GUILayout.Button("Rename scenes")) {
ReNameScenes();
}
}