private GameObject LoadInsideShop(WealthLevelShop wealthLevelShop, SizeShop sizeShop, float wealthValue) { GameObject[] shops; if (wealthLevelShop == WealthLevelShop.Poor) { shops = (sizeShop == SizeShop.Small) ? poorSmall : poorBig; } else if (wealthLevelShop == WealthLevelShop.Normal) { shops = (sizeShop == SizeShop.Small) ? normalSmall : normalBig; } else { shops = (sizeShop == SizeShop.Small) ? richSmall : richBig; } var shopDict = new Dictionary <GameObject, float>(); foreach (var obj in shops) { shopDict.Add(obj, obj.GetComponent <ProceduralEntity>().wealthValue); } return(Instantiate(ProceduralCalculations.GetRandomTFromPool(shopDict, wealthValue))); }
public void OnGUI() { if (settings == null) { settings = AssetDatabase.LoadAssetAtPath <NestedPrefabCategorySettings>(pathToSetting); if (settings == null) { Debug.LogWarning("You need to create the NestedPrefabsCategories to be able to register your nested prefab"); settings = CreateInstance <NestedPrefabCategorySettings>(); AssetDatabase.CreateAsset(settings, pathToSetting); AssetDatabase.SaveAssets(); } } if (onFirstOnGUI) { GetModelType(); onFirstOnGUI = false; } EditorGUILayout.BeginVertical(); EditorGUILayout.Space(); GUILayout.Label("Catégorie :"); EditorGUI.indentLevel++; if (EditorGUILayout.Toggle("Shop", selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Shop)) { if (selectedNestedPrefabCategory.categoryNameNested != NestedPrefabCategoryName.Shop) { selectedNestedPrefabCategory = settings.shopNestPrefab; GetModelType(); } } if (EditorGUILayout.Toggle("Mall", selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Mall)) { if (selectedNestedPrefabCategory.categoryNameNested != NestedPrefabCategoryName.Mall) { selectedNestedPrefabCategory = settings.mallNestPrefab; GetModelType(); } } if (EditorGUILayout.Toggle("Apartment", selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Apartment)) { if (selectedNestedPrefabCategory.categoryNameNested != NestedPrefabCategoryName.Apartment) { selectedNestedPrefabCategory = settings.apartmentNestPrefab; GetModelType(); } } EditorGUI.indentLevel--; EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.EndVertical(); if (selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Shop) { GUILayout.Label("Wealth :"); EditorGUI.indentLevel++; if (EditorGUILayout.Toggle("Poor", selectedWealthLevelShop == WealthLevelShop.Poor)) { if (selectedWealthLevelShop != WealthLevelShop.Poor) { selectedWealthLevelShop = WealthLevelShop.Poor; GetModelType(); } } if (EditorGUILayout.Toggle("Normal", selectedWealthLevelShop == WealthLevelShop.Normal)) { if (selectedWealthLevelShop != WealthLevelShop.Normal) { selectedWealthLevelShop = WealthLevelShop.Normal; GetModelType(); } } if (EditorGUILayout.Toggle("Rich", selectedWealthLevelShop == WealthLevelShop.Rich)) { if (selectedWealthLevelShop != WealthLevelShop.Rich) { selectedWealthLevelShop = WealthLevelShop.Rich; GetModelType(); } } EditorGUI.indentLevel--; EditorGUILayout.Space(); GUILayout.Label("Size :"); EditorGUI.indentLevel++; if (EditorGUILayout.Toggle("Small", selectedSizeShop == SizeShop.Small)) { if (selectedSizeShop != SizeShop.Small) { selectedSizeShop = SizeShop.Small; GetModelType(); } } if (EditorGUILayout.Toggle("Big", selectedSizeShop == SizeShop.Big)) { if (selectedSizeShop != SizeShop.Big) { selectedSizeShop = SizeShop.Big; GetModelType(); } } EditorGUI.indentLevel--; EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); } else if (selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Apartment) { GUILayout.Label("Size :"); EditorGUI.indentLevel++; if (EditorGUILayout.Toggle("Tiny", seletectedSizeApartment == SizeApartment.Tiny)) { if (seletectedSizeApartment != SizeApartment.Tiny) { seletectedSizeApartment = SizeApartment.Tiny; GetModelType(); } } if (EditorGUILayout.Toggle("Small", seletectedSizeApartment == SizeApartment.Small)) { if (seletectedSizeApartment != SizeApartment.Small) { seletectedSizeApartment = SizeApartment.Small; GetModelType(); } } if (EditorGUILayout.Toggle("Normal", seletectedSizeApartment == SizeApartment.Medium)) { if (seletectedSizeApartment != SizeApartment.Medium) { seletectedSizeApartment = SizeApartment.Medium; GetModelType(); } } if (EditorGUILayout.Toggle("Big", seletectedSizeApartment == SizeApartment.Big)) { if (seletectedSizeApartment != SizeApartment.Big) { seletectedSizeApartment = SizeApartment.Big; GetModelType(); } } EditorGUI.indentLevel--; EditorGUILayout.Space(); } if (EditorGUILayout.Toggle("Center", centerNewObject)) { if (!centerNewObject) { centerNewObject = !centerNewObject; } } else { if (centerNewObject) { centerNewObject = !centerNewObject; } } if (settings.shopNestPrefab.categoryNameNested == settings.mallNestPrefab.categoryNameNested && settings.mallNestPrefab.categoryNameNested == settings.apartmentNestPrefab.categoryNameNested && settings.apartmentNestPrefab.categoryNameNested == settings.shopNestPrefab.categoryNameNested) { GUILayout.Label("Please fill correctly NestedPrefabCategorySettings in the Editor Folder"); } else { if (GUILayout.Button("Create prefab") && AskCreatePrefab()) { foreach (Transform child in prefabParent.transform) { RecursivelyRemoveProceduralEntitiesChildren(child.gameObject); } string localPath = selectedNestedPrefabCategory.pathFolder; if (selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Shop) { localPath += selectedWealthLevelShop + "/" + selectedSizeShop + "/"; } else if (selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Apartment) { localPath += seletectedSizeApartment + "/"; } else if (selectedNestedPrefabCategory.categoryNameNested == NestedPrefabCategoryName.Mall) { localPath += "Mall/"; } if (!Directory.Exists(localPath)) { Directory.CreateDirectory(localPath); } localPath += prefabParent.name + ".prefab"; localPath = AssetDatabase.GenerateUniqueAssetPath(localPath); PrefabUtility.SaveAsPrefabAssetAndConnect(prefabParent, localPath, InteractionMode.AutomatedAction); GetModelType(); Debug.Log("Nested prefab created"); } } }