Modificación del código fuente de Unity TextMeshPro

Para ampliar las funciones de TextMeshPro, escribí algunas herramientas de TextMeshPro y planeé importar TextMeshPro directamente al proyecto para poder modificar el código fuente.
De hecho, simplemente copie TextMeshPro en la carpeta Libray al proyecto y luego elimine el paquete TextMeshPro en PackageManager.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Sin embargo, en este momento nos encontraremos con que faltan algunos iconos.
Insertar descripción de la imagen aquí
De hecho, es un problema de ruta, no está cargado en los recursos del editor, solo modifica parte del código fuente.

Modificar de la siguiente manera:

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

            return null;
        }

Las razones se pueden ver aquí:

		//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
            {
    
    
            .......
        }

Supongo que te gusta

Origin blog.csdn.net/weixin_44293055/article/details/125194073
Recomendado
Clasificación