private void OnEnable() { ConsoleContent = string.Empty; TextureSource = null; TPTextSheet = null; RichTextAsset = null; InitGUIStyle(); }
private static void AddDefaultMaterial(RichTextSpriteAsset spriteAsset) { Shader shader = Shader.Find("UI/Default"); Material material = new Material(shader); material.SetTexture("_MainTex", spriteAsset.spriteSheet); spriteAsset.material = material; material.hideFlags = HideFlags.HideInHierarchy; AssetDatabase.AddObjectToAsset(material, spriteAsset); }
/// <summary> /// 设置图集 /// </summary> /// <param name="spriteAsset"></param> public void SetSpriteAsset(RichTextSpriteAsset spriteAsset) { m_TextSpriteAssett = spriteAsset; }
private void SaveSpriteAsset(string filePath) { filePath = filePath.Substring(0, filePath.Length - 6); string dataPath = Application.dataPath; if (filePath.IndexOf(dataPath, StringComparison.InvariantCultureIgnoreCase) == -1) { Debug.LogError("You're saving the font asset in a directory outside of this project folder. This is not supported. Please select a directory under \"" + dataPath + "\""); return; } string path = filePath.Substring(dataPath.Length - 6); string directoryName = Path.GetDirectoryName(path); string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path); string str = directoryName + "/" + fileNameWithoutExtension; if (!File.Exists(filePath + ".asset")) { this.RichTextAsset = ScriptableObject.CreateInstance <RichTextSpriteAsset>(); AssetDatabase.CreateAsset(this.RichTextAsset, str + ".asset"); } else { this.RichTextAsset = AssetDatabase.LoadAssetAtPath <RichTextSpriteAsset>(str + ".asset"); if (this.RichTextAsset == null) { this.RichTextAsset = ScriptableObject.CreateInstance <RichTextSpriteAsset>(); AssetDatabase.CreateAsset(this.RichTextAsset, str + ".asset"); } } this.RichTextAsset.hashCode = this.RichTextAsset.name.GetHashCode(); this.RichTextAsset.spriteSheet = this.TextureSource; this.RichTextAsset.spriteInfoList = this.RichTextSpriteInfoList; this.RichTextAsset.animateList.Clear(); if (this.RichTextAnimateDic != null && this.RichTextAnimateDic.Count > 0) { foreach (var keyValue in RichTextAnimateDic) { keyValue.Value.m_SpriteList.Sort((a, b) => { if (a.animatIndex == b.animatIndex) { return(0); } return(a.animatIndex > b.animatIndex ? 1 : -1); }); this.RichTextAsset.animateList.Add(keyValue.Value); } } AddDefaultMaterial(this.RichTextAsset); EditorUtility.SetDirty(this.RichTextAsset); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); if (Application.isPlaying) { UnityEditor.SceneManagement.EditorSceneManager.MarkAllScenesDirty(); } this.RichTextAnimateDic = null; this.RichTextSpriteInfoList = null; }