コード例 #1
0
 public void OnEnable()
 {
     TMP_UIStyleManager.GetUIStyles();
     fontAsset_prop     = base.serializedObject.FindProperty("m_fontAsset");
     spriteAsset_prop   = base.serializedObject.FindProperty("m_spriteAsset");
     m_SubMeshComponent = (base.target as TMP_SubMesh);
     m_Renderer         = m_SubMeshComponent.renderer;
 }
コード例 #2
0
        static void DuplicateMaterial(MenuCommand command)
        {
            // Get the type of text object
            // If material is not a base material, we get material leaks...

            Material source_Mat = (Material)command.context;

            if (!EditorUtility.IsPersistent(source_Mat))
            {
                Debug.LogWarning("Material is an instance and cannot be converted into a permanent asset.");
                return;
            }


            string assetPath = AssetDatabase.GetAssetPath(source_Mat).Split('.')[0];

            Material duplicate = new Material(source_Mat);

            // Need to manually copy the shader keywords
            duplicate.shaderKeywords = source_Mat.shaderKeywords;

            AssetDatabase.CreateAsset(duplicate, AssetDatabase.GenerateUniqueAssetPath(assetPath + ".mat"));

            GameObject[] selectedObjects = Selection.gameObjects;

            // Assign new Material Preset to selected text objects.
            for (int i = 0; i < selectedObjects.Length; i++)
            {
                TMP_Text textObject = selectedObjects[i].GetComponent <TMP_Text>();

                if (textObject != null)
                {
                    textObject.fontSharedMaterial = duplicate;
                }
                else
                {
                    TMP_SubMesh subMeshObject = selectedObjects[i].GetComponent <TMP_SubMesh>();

                    if (subMeshObject != null)
                    {
                        subMeshObject.sharedMaterial = duplicate;
                    }
                    else
                    {
                        TMP_SubMeshUI subMeshUIObject = selectedObjects[i].GetComponent <TMP_SubMeshUI>();

                        if (subMeshUIObject != null)
                        {
                            subMeshUIObject.sharedMaterial = duplicate;
                        }
                    }
                }
            }

            // Ping newly created Material Preset.
            EditorUtility.FocusProjectWindow();
            EditorGUIUtility.PingObject(duplicate);
        }
コード例 #3
0
        public void OnEnable()
        {
            fontAsset_prop   = serializedObject.FindProperty("m_fontAsset");
            spriteAsset_prop = serializedObject.FindProperty("m_spriteAsset");

            m_SubMeshComponent = target as TMP_SubMesh;

            m_Renderer = m_SubMeshComponent.renderer;
        }
コード例 #4
0
ファイル: TMP_SubMesh_Editor.cs プロジェクト: soulnai/SilkWay
        public void OnEnable()
        {
            // Get the UI Skin and Styles for the various Editors
            TMP_UIStyleManager.GetUIStyles();


            m_SubMeshComponent = target as TMP_SubMesh;

            m_Renderer = m_SubMeshComponent.renderer;
        }
コード例 #5
0
        public void OnEnable()
        {
            // Get the UI Skin and Styles for the various Editors
            TMP_UIStyleManager.GetUIStyles();

            fontAsset_prop   = serializedObject.FindProperty("m_fontAsset");
            spriteAsset_prop = serializedObject.FindProperty("m_spriteAsset");

            m_SubMeshComponent = target as TMP_SubMesh;

            m_Renderer = m_SubMeshComponent.renderer;
        }
コード例 #6
0
        public void OnEnable()
        {
            // Get the UI Skin and Styles for the various Editors
            TMP_UIStyleManager.GetUIStyles();

            fontAsset_prop = serializedObject.FindProperty("m_fontAsset");
            spriteAsset_prop = serializedObject.FindProperty("m_spriteAsset");

            m_SubMeshComponent = target as TMP_SubMesh;

            m_Renderer = m_SubMeshComponent.renderer;
        }
コード例 #7
0
        static void DuplicateMaterial(MenuCommand command)
        {
            // Get the type of text object
            // If material is not a base material, we get material leaks...

            Material source_Mat = (Material)command.context;

            if (!EditorUtility.IsPersistent(source_Mat))
            {
                Debug.LogWarning("Material is an instance and cannot be converted into a permanent asset.");
                return;
            }


            string assetPath = AssetDatabase.GetAssetPath(source_Mat).Split('.')[0];

            Material duplicate = new Material(source_Mat);

            // Need to manually copy the shader keywords
            duplicate.shaderKeywords = source_Mat.shaderKeywords;

            AssetDatabase.CreateAsset(duplicate, AssetDatabase.GenerateUniqueAssetPath(assetPath + ".mat"));

            // Assign duplicate Material to selected object (if one is)
            if (Selection.activeGameObject != null)
            {
                TMP_Text textObject = Selection.activeGameObject.GetComponent <TMP_Text>();
                if (textObject != null)
                {
                    textObject.fontSharedMaterial = duplicate;
                }
                else
                {
                    TMP_SubMesh subMeshObject = Selection.activeGameObject.GetComponent <TMP_SubMesh>();

                    if (subMeshObject != null)
                    {
                        subMeshObject.sharedMaterial = duplicate;
                    }
                    else
                    {
                        TMP_SubMeshUI subMeshUIObject = Selection.activeGameObject.GetComponent <TMP_SubMeshUI>();

                        if (subMeshUIObject != null)
                        {
                            subMeshUIObject.sharedMaterial = duplicate;
                        }
                    }
                }
            }
        }
コード例 #8
0
ファイル: Draw.cs プロジェクト: guplem/TS20-Thoughts
        [OvldGenCallTarget] static void Text_Internal(string content,
                                                      [OvldDefault(nameof(Font))] TMP_FontAsset font,
                                                      [OvldDefault(nameof(FontSize))] float fontSize,
                                                      [OvldDefault(nameof(TextAlign))] TextAlign align,
                                                      [OvldDefault(nameof(Color))] Color color)
        {
            TextMeshPro tmp = ShapesTextDrawer.Instance.tmp;

            // styling
            tmp.font             = font;
            tmp.color            = color;
            tmp.fontSize         = fontSize;
            tmp.fontStyle        = FontStyle;
            tmp.characterSpacing = TextCharacterSpacing;
            tmp.wordSpacing      = TextWordSpacing;
            tmp.lineSpacing      = TextLineSpacing;
            tmp.paragraphSpacing = TextParagraphSpacing;
            tmp.margin           = TextMargins;

            // content
            tmp.text = content;

            // positioning
            tmp.alignment              = align.GetTMPAlignment();
            tmp.rectTransform.pivot    = align.GetPivot();
            tmp.transform.position     = Matrix.GetColumn(3);
            tmp.rectTransform.rotation = Matrix.rotation;
            tmp.ForceMeshUpdate();

            using (new IMDrawer(mpbText, font.material, tmp.mesh, drawType: IMDrawer.DrawType.Text, allowInstancing: false)) {
                // will draw on dispose
            }

            // ;-;
            if (tmp.textInfo.materialCount > 1)
            {
                // we have fallback fonts so GreaT!! let's just draw everything because f**k me
                for (int i = 0; i < tmp.transform.childCount; i++)
                {
                    TMP_SubMesh sm = tmp.transform.GetChild(i).GetComponent <TMP_SubMesh>();
                    using (new IMDrawer(mpbText, sm.material, sm.mesh, drawType: IMDrawer.DrawType.Text, allowInstancing: false)) {
                        // will draw on dispose
                    }
                }
            }
        }
コード例 #9
0
        private static void DuplicateMaterial(MenuCommand command)
        {
            Material material = (Material)command.context;

            if (!EditorUtility.IsPersistent(material))
            {
                Debug.LogWarning("Material is an instance and cannot be converted into a permanent asset.");
                return;
            }
            string   str       = AssetDatabase.GetAssetPath(material).Split('.')[0];
            Material material2 = new Material(material);

            material2.shaderKeywords = material.shaderKeywords;
            AssetDatabase.CreateAsset(material2, AssetDatabase.GenerateUniqueAssetPath(str + ".mat"));
            if (Selection.activeGameObject != null)
            {
                TMP_Text component = Selection.activeGameObject.GetComponent <TMP_Text>();
                if ((Object)(object)component != null)
                {
                    component.fontSharedMaterial = material2;
                }
                else
                {
                    TMP_SubMesh component2 = Selection.activeGameObject.GetComponent <TMP_SubMesh>();
                    if (component2 != null)
                    {
                        component2.sharedMaterial = material2;
                    }
                    else
                    {
                        TMP_SubMeshUI component3 = Selection.activeGameObject.GetComponent <TMP_SubMeshUI>();
                        if ((Object)(object)component3 != null)
                        {
                            component3.sharedMaterial = material2;
                        }
                    }
                }
            }
            EditorUtility.FocusProjectWindow();
            EditorGUIUtility.PingObject(material2);
        }