Unity TextMeshPro ソースコードの変更

TextMeshPro の機能を拡張するために、いくつかの TextMeshPro ツールを作成し、ソース コードを変更できるように TextMeshPro をプロジェクトに直接インポートすることを計画しました。
実際には、Libray フォルダー内の TextMeshPro をプロジェクトにコピーし、PackageManager で TextMeshPro パッケージを削除するだけです。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ただし、現時点では、いくつかのアイコンが欠落していることがわかります。
ここに画像の説明を挿入します
実際には、これはパスの問題であり、エディター リソースにはロードされず、ソース コードの一部を変更するだけです。

次のように変更します。

		//TMP_EditorUtility.cs
		private static string GetPackageRelativePath()
        {
    
    
        	//这里直接return就好了
            return "Assets/Plugins/TextMeshPro";
            // Check for potential UPM package
            // ...
            }

            return null;
        }

理由は次のとおりです。

		//TMP_UIStyleManager.cs
        static TMP_UIStyleManager()
        {
    
    
            // Find to location of the TextMesh Pro Asset Folder (as users may have moved it)
            var tmproAssetFolderPath = TMP_EditorUtility.packageRelativePath;

            if (EditorGUIUtility.isProSkin)
            {
    
    
                alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft.psd", typeof(Texture2D)) as Texture2D;
                alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter.psd", typeof(Texture2D)) as Texture2D;
                alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight.psd", typeof(Texture2D)) as Texture2D;
                alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified.psd", typeof(Texture2D)) as Texture2D;
                alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush.psd", typeof(Texture2D)) as Texture2D;
                alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo.psd", typeof(Texture2D)) as Texture2D;
                alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop.psd", typeof(Texture2D)) as Texture2D;
                alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle.psd", typeof(Texture2D)) as Texture2D;
                alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom.psd", typeof(Texture2D)) as Texture2D;
                alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine.psd", typeof(Texture2D)) as Texture2D;
                alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine.psd", typeof(Texture2D)) as Texture2D;
                alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine.psd", typeof(Texture2D)) as Texture2D;
                sectionHeaderTexture = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/SectionHeader_Dark.psd", typeof(Texture2D)) as Texture2D;
            }
            else
            {
    
    
            .......
        }

おすすめ

転載: blog.csdn.net/weixin_44293055/article/details/125194073