bool PlatformPopup(string label, ref tmPlatform currentPlatform) { int selectedIndex = -1; List <string> entryNames = new List <string>(); for (int i = 0; i < settings.texturePlatforms.Length; i++) { tmPlatform platform = settings.texturePlatforms[i]; entryNames.Add(platform.name); if (currentPlatform != null && !string.IsNullOrEmpty(currentPlatform.name)) { if (currentPlatform.name.Equals(platform.name)) { selectedIndex = i; } } } int lastIndex = selectedIndex; selectedIndex = EditorGUILayout.Popup(label, selectedIndex, entryNames.ToArray()); if (selectedIndex != -1) { currentPlatform = settings.texturePlatforms[selectedIndex]; } return(lastIndex != selectedIndex); }
public tmTextureCollectionPlatform GetPlatformCollection(string collectionGuid, tmPlatform platform) { string collectionGuidPath = tmUtility.PathForPlatform(collectionGuid, platform); if (collectionMap.ContainsKey(collectionGuidPath)) { return(collectionMap[collectionGuidPath]); } else { tmResourceCollectionLink link = tmUtility.ResourceLinkByGUID(collectionGuidPath); if (link != null) { #if UNITY_EDITOR if (!Application.isPlaying) { link.collection.LoadTexture(); } #endif collectionMap.Add(collectionGuidPath, link.collection); return(link.collection); } } return(null); }
static Texture2D PlatformSpecifiedTexture(Texture2D mainTexture, tmPlatform platform, bool force = false) { string texturePath = AssetDatabase.GetAssetPath(mainTexture); string directory = System.IO.Path.GetDirectoryName(texturePath); string textureFileName = System.IO.Path.GetFileName(texturePath); string platformDirectory = directory + "/" + platform.postfix.Replace("@", ""); string platformPath = platformDirectory + "/" + textureFileName; if (platform.Equals(tmSettings.Instance.DefaultPlatform)) { return(mainTexture); } if (!System.IO.Directory.Exists(platformDirectory)) { System.IO.Directory.CreateDirectory(platformDirectory); } Texture2D asset = AssetDatabase.LoadAssetAtPath(platformPath, typeof(Texture2D)) as Texture2D; if (asset == null || force) { AssetDatabase.DeleteAsset(platformPath); AssetDatabase.CopyAsset(texturePath, platformPath); Debug.Log("Create texture : " + mainTexture.name + platform.postfix); // int width = mainTexture.width / 2; // int height = mainTexture.height / 2; // // asset = new Texture2D(width, height); // for(int i = 0; i < width; i++) // { // for(int j = 0; j < height; j++) // { // asset.SetPixel(i,j, mainTexture.GetPixel(i*2,j*2)); // } // } // asset.Apply(); asset = tmEditorUtility.RescaleTexture(mainTexture, platform.scale / tmSettings.Instance.DefaultPlatform.scale); var bytes = asset.EncodeToPNG(); System.IO.File.WriteAllBytes(platformPath, bytes); Object.DestroyImmediate(asset); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); AssetDatabase.ImportAsset(platformPath, ImportAssetOptions.ForceUpdate | ImportAssetOptions.DontDownloadFromCacheServer); asset = AssetDatabase.LoadAssetAtPath(platformPath, typeof(Texture2D)) as Texture2D; } return(asset); }
public override bool Equals(object obj) { tmPlatform other = obj as tmPlatform; if (other != null) { return(this.guid.Equals(other.guid)); } return(false); }
public static string PathForPlatform(string path, tmPlatform platform) { if (!string.IsNullOrEmpty(path)) { string directory = System.IO.Path.GetDirectoryName(path); if (!string.IsNullOrEmpty(directory)) { directory += "/"; } string fileName = System.IO.Path.GetFileNameWithoutExtension(path); string fileExtension = System.IO.Path.GetExtension(path); fileName = PlatformlessPath(fileName); path = directory + fileName + platform.postfix + fileExtension; } return(path); }
public static List <tmResourceCollectionLink> GetAllResourceLinksFor(tmPlatform platform, List <tmResourceCollectionLink> _links) { HashSet <string> allCollectionsGuids = new HashSet <string>(); for (int i = 0; i < _links.Count; ++i) { string collectionGuid = PlatformlessPath(_links[i].name).Replace(tmSettings.ResourceLinkPrefix, ""); allCollectionsGuids.Add(collectionGuid); } List <tmResourceCollectionLink> platformLinks = new List <tmResourceCollectionLink>(); foreach (string collectionGuid in allCollectionsGuids) { platformLinks.Add(ResourceLinkByGUID(collectionGuid + platform.postfix)); } return(platformLinks); }
public override void OnInspectorGUI() { // base.OnInspectorGUI(); tmPlatform targetPlatform = settings.TargetPlatform; if (PlatformPopup("Target platform", ref targetPlatform)) { settings.TargetPlatform = targetPlatform; EditorUtility.SetDirty(settings); tmCollectionBuilder.ValidateResourceLinks(); } tmPlatform currentPlatform = settings.CurrentPlatform; if (PlatformPopup("Current platform", ref currentPlatform)) { settings.CurrentPlatform = currentPlatform; EditorUtility.SetDirty(settings); } tmPlatform defaultPlatform = settings.DefaultPlatform; if (PlatformPopup("Default platform", ref defaultPlatform)) { settings.DefaultPlatform = defaultPlatform; EditorUtility.SetDirty(settings); } settings.autoRebuild = EditorGUILayout.Toggle("Auto Rebuild", settings.autoRebuild); settings.ForceStaticGeometry = EditorGUILayout.Toggle("Force Static Geometry", settings.ForceStaticGeometry); settings.rebuildMesh = EditorGUILayout.Toggle("Rebuild mesh uv", settings.rebuildMesh); settings.batching = EditorGUILayout.Toggle("Batching", settings.batching); settings.isImmediateTextureLoadEnabled = EditorGUILayout.Toggle("Synchronous texture load enabled", settings.isImmediateTextureLoadEnabled); settings.isAtlasesPreloadEnabled = EditorGUILayout.Toggle("Atlases preload on tmManager's Awake enabled", settings.isAtlasesPreloadEnabled); settings.isAtlasesUnloadEnabled = EditorGUILayout.Toggle("Atlases unload on ref count = 0 enabled", settings.isAtlasesUnloadEnabled); EditorUtility.SetDirty(settings); }
public static List <tmResourceCollectionLink> GetAllResourceLinks(tmPlatform platform) { tmResourceCollectionLink[] allLinks = Resources.LoadAll <tmResourceCollectionLink>(tmSettings.ResourceFolder); HashSet <string> allCollectionsGuids = new HashSet <string>(); for (int i = 0; i < allLinks.Length; ++i) { string collectionGuid = PlatformlessPath(allLinks[i].name).Replace(tmSettings.ResourceLinkPrefix, ""); allCollectionsGuids.Add(collectionGuid); } List <tmResourceCollectionLink> platformLinks = new List <tmResourceCollectionLink>(); foreach (string collectionGuid in allCollectionsGuids) { platformLinks.Add(ResourceLinkByGUID(collectionGuid + platform.postfix)); } return(platformLinks); }
public override void OnInspectorGUI() { // base.OnInspectorGUI(); tmPlatform targetPlatform = settings.TargetPlatform; if (PlatformPopup("Target platform", ref targetPlatform)) { settings.TargetPlatform = targetPlatform; EditorUtility.SetDirty(settings); tmCollectionBuilder.ValidateResourceLinks(); } tmPlatform currentPlatform = settings.CurrentPlatform; if (PlatformPopup("Current platform", ref currentPlatform)) { settings.CurrentPlatform = currentPlatform; EditorUtility.SetDirty(settings); } tmPlatform defaultPlatform = settings.DefaultPlatform; if (PlatformPopup("Default platform", ref defaultPlatform)) { settings.DefaultPlatform = defaultPlatform; EditorUtility.SetDirty(settings); } settings.autoRebuild = EditorGUILayout.Toggle("Auto Rebuild", settings.autoRebuild); settings.ForceStaticGeometry = EditorGUILayout.Toggle("Force Static Geometry", settings.ForceStaticGeometry); settings.rebuildMesh = EditorGUILayout.Toggle("Rebuild mesh uv", settings.rebuildMesh); settings.batching = EditorGUILayout.Toggle("Batching", settings.batching); EditorUtility.SetDirty(settings); }
public static tmTextureCollectionPlatform CreatePlatformCollectionFromMainCollection(tmTextureCollection collection, tmPlatform platform) { string mainCollectionPath = AssetDatabase.GetAssetPath(collection); string directory = System.IO.Path.GetDirectoryName(mainCollectionPath); string platformDirectory = directory + "/" + collection.name + platform.postfix; string platformPath = platformDirectory + "/" + collection.name + platform.postfix + ".prefab"; if (!System.IO.Directory.Exists(platformDirectory)) { System.IO.Directory.CreateDirectory(platformDirectory); } tmTextureCollectionPlatform collectionPlatform = AssetDatabase.LoadAssetAtPath(platformPath, typeof(tmTextureCollectionPlatform)) as tmTextureCollectionPlatform; if (collectionPlatform == null) { GameObject g = new GameObject(); g.AddComponent <tmTextureCollectionPlatform>(); GameObject prefab = PrefabUtility.CreatePrefab(platformPath, g); Object.DestroyImmediate(g); collectionPlatform = prefab.GetComponent <tmTextureCollectionPlatform>(); collectionPlatform.assetGuid = tmEditorUtility.AssetToGUID(prefab); collectionPlatform.collectionGuid = collection.collectionGuid + platform.postfix; } return(collectionPlatform); }
public tmTextureCollectionPlatform GetPlatformCollectionWithFallback(string collectionGuid, tmPlatform platform) { tmTextureCollectionPlatform plTexColl = GetPlatformCollection(collectionGuid, platform); if (plTexColl == null) { foreach (var pl in tmSettings.allPlatfrorms) { plTexColl = GetPlatformCollection(collectionGuid, pl); if (plTexColl != null) { return(plTexColl); } } } return(plTexColl); }