/// <summary> /// Ensure the prefab has a VegetationItemID /// </summary> /// <param name="prefabSettings"></param> private void updateVSProSettings(PrefabSettings prefabSettings, bool forceVegetationItemIDUpdate) { #if VEGETATION_STUDIO_PRO GameObject prefab = prefabSettings.prefab; // check if we have a VegetationItemID, otherwise create it using the current prefab if (string.IsNullOrEmpty(prefabSettings.vspro_VegetationItemID) || forceVegetationItemIDUpdate) { // get the asset guid if (string.IsNullOrEmpty(prefabSettings.assetGUID)) { string assetPath = AssetDatabase.GetAssetPath(prefab); if (!string.IsNullOrEmpty(assetPath)) { string assetGUID = AssetDatabase.AssetPathToGUID(assetPath); prefabSettings.assetGUID = assetGUID; } } // if we have a guid, get the vs pro id if (!string.IsNullOrEmpty(prefabSettings.assetGUID)) { // get the VegetationItemID prefabSettings.vspro_VegetationItemID = VegetationStudioManager.GetVegetationItemID(prefabSettings.assetGUID); // if the vegetation item id doesn't exist, create a new vegetation item if (string.IsNullOrEmpty(prefabSettings.vspro_VegetationItemID)) { VegetationType vegetationType = VegetationType.Objects; bool enableRuntimeSpawn = false; // no runtime spawn, we want it spawned from persistent storage BiomeType biomeType = BiomeType.Default; prefabSettings.vspro_VegetationItemID = VegetationStudioManager.AddVegetationItem(prefab, vegetationType, enableRuntimeSpawn, biomeType); } } else { Debug.LogError("Can't get assetGUID for prefab " + prefab); } } if (string.IsNullOrEmpty(prefabSettings.vspro_VegetationItemID)) { Debug.LogError("Can't get VegetationItemId for prefab " + prefab); } #endif }