/*public static bool IsModelProcessed(string path) * { * if (lstorage == null) lstorage = GetLocalStorage(); * var listProcessed = lstorage.modifiedAssetPathList; * return listProcessed.Contains(path); * }*/ public static void MarkModelProcessed(string path, bool enabled) { if (lstorage == null) { lstorage = GetLocalStorage(); } if (gstorage == null) { gstorage = GetGlobalStorage(); } if (enabled) { int gid = gstorage.modifiedAssetPathList.IndexOf(path); if (gid < 0) { return; } int hash = gstorage.CalculatePaddingHash(gid); while (gstorage.modifiedAssetPaddingHash.Count <= gid) { gstorage.modifiedAssetPaddingHash.Add(0); } gstorage.modifiedAssetPaddingHash[gid] = hash; int id = lstorage.modifiedAssetPathList.IndexOf(path); if (id < 0) { lstorage.modifiedAssetPathList.Add(path); id = lstorage.modifiedAssetPathList.Count - 1; } while (lstorage.modifiedAssetPaddingHash.Count <= id) { lstorage.modifiedAssetPaddingHash.Add(0); } lstorage.modifiedAssetPaddingHash[id] = hash; EditorUtility.SetDirty(gstorage); EditorSceneManager.MarkAllScenesDirty(); } else { int id = lstorage.modifiedAssetPathList.IndexOf(path); if (id >= 0) { lstorage.modifiedAssetPathList.RemoveAt(id); if (lstorage.modifiedAssetPaddingHash.Count > id) { lstorage.modifiedAssetPaddingHash.RemoveAt(id); } } } EditorUtility.SetDirty(lstorage); }
public static ftGlobalStorage GetGlobalStorage() { if (gstorage != null) { return(gstorage); } var bakeryRuntimePath = GetRuntimePath(); gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage; if (gstorage == null && editorUpdateCalled) // if editorUpdateCalled==false, it may be not imported yet { var gstorageDefault = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftDefaultGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage; if (gstorageDefault != null) { if (AssetDatabase.CopyAsset(bakeryRuntimePath + "ftDefaultGlobalStorage.asset", bakeryRuntimePath + "ftGlobalStorage.asset")) { AssetDatabase.Refresh(); gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage; } } if (gstorage == null) { Debug.Log("Created Bakery GlobalStorage"); gstorage = ScriptableObject.CreateInstance <ftGlobalStorage>(); AssetDatabase.CreateAsset(gstorage, bakeryRuntimePath + "ftGlobalStorage.asset"); AssetDatabase.SaveAssets(); } else { Debug.Log("Created Bakery GlobalStorage from DefaultGlobalStorage"); } } if (gstorage != null) { if (gstorage.modifiedMeshList.Count > 0) { gstorage.ConvertFromLegacy(); } } return(gstorage); }
public static void Init() { storage = ftLightmaps.GetGlobalStorage(); //ftLightmaps.AddTag("BakeryProcessed"); }
static void CreateGlobalStorageAsset() { if (gstorage == null) { gstorage = GetGlobalStorage(); } if (lstorage == null) { lstorage = GetLocalStorage(); } var listToProccess = gstorage.modifiedAssetPathList; var listToProcessHash = gstorage.modifiedAssetPaddingHash; var listProcessed = lstorage.modifiedAssetPathList; var listProcessedHash = lstorage.modifiedAssetPaddingHash; for (int i = 0; i < listToProccess.Count; i++) { int localID = listProcessed.IndexOf(listToProccess[i]); if (localID >= 0) { if (listToProcessHash.Count > i) { int globalPaddingHash = listToProcessHash[i]; if (listProcessedHash.Count > localID) { int localPaddingHash = listProcessedHash[localID]; if (globalPaddingHash == localPaddingHash) { continue; } } } else { // Hash is not initialized = legacy continue; } } #if UNITY_2017_1_OR_NEWER var importer = AssetImporter.GetAtPath(listToProccess[i]) as ModelImporter; if (importer != null) { var props = importer.extraUserProperties; int propID = -1; for (int p = 0; p < props.Length; p++) { if (props[p].Substring(0, 7) == "#BAKERY") { propID = p; break; } } if (propID >= 0) { continue; // should be fine without additional reimport - metadata is always loaded with model } } #endif var asset = AssetDatabase.LoadAssetAtPath(listToProccess[i], typeof(GameObject)) as GameObject; if (asset == null) { continue; } if (asset.tag == "BakeryProcessed") { continue; // legacy } //if (asset.tag != "BakeryProcessed") AssetDatabase.ImportAsset(list[i], ImportAssetOptions.ForceUpdate); Debug.Log("Reimporting to adjust UVs: " + listToProccess[i]); AssetDatabase.ImportAsset(listToProccess[i], ImportAssetOptions.ForceUpdate); } }
public static void CopySettings(ftGlobalStorage src, ftLightmapsStorage dest) { dest.renderSettingsBounces = src.renderSettingsBounces; dest.renderSettingsGISamples = src.renderSettingsGISamples; dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight; dest.renderSettingsTileSize = src.renderSettingsTileSize; dest.renderSettingsPriority = src.renderSettingsPriority; dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit; dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh; dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry; dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering; dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode; dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask; dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode; dest.renderSettingsFixSeams = src.renderSettingsFixSeams; dest.renderSettingsDenoise = src.renderSettingsDenoise; dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x; dest.renderSettingsEncode = src.renderSettingsEncode; dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode; dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning; dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas; dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs; dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs; dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution; dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution; dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes; dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples; dest.renderSettingsGILODMode = src.renderSettingsGILODMode; dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled; dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps; dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs; dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost; dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost; dest.renderSettingsTempPath = src.renderSettingsTempPath; dest.renderSettingsOutPath = src.renderSettingsOutPath; dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath; dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity; dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples; dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius; dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings; dest.renderSettingsShowTasks = src.renderSettingsShowTasks; dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2; dest.renderSettingsShowPaths = src.renderSettingsShowPaths; dest.renderSettingsShowNet = src.renderSettingsShowNet; dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes; dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap; dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor; dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask; dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir; dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning; dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode; dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings; dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning; dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning; dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene; dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax; dest.renderSettingsPostPacking = src.renderSettingsPostPacking; dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling; dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish; dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap; dest.renderSettingsRTXMode = src.renderSettingsRTXMode; dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode; dest.renderSettingsClientMode = src.renderSettingsClientMode; dest.renderSettingsServerAddress = src.renderSettingsServerAddress; dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper; dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType; dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees; dest.renderSettingsShowPerf = src.renderSettingsShowPerf; dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv; dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints; dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport; dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView; dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth; dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight; dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker; dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas; }