代码之家  ›  专栏  ›  技术社区  ›  ChrisID58

关于禁用问题的Unity textmeshpro扩展编辑器

  •  1
  • ChrisID58  · 技术社区  · 6 年前

    我试图解决一个非常特殊的问题,可能你们中的一个有类似的问题,我将从Unity的包管理器扩展类textmeshprougui,只是为了添加一个简单的字符串,用于本地化的额外属性,称为m_key,对于那些将使用这个游戏对象的人,只需将本地化字符串的密钥放在编辑器上,并检查它看起来如何li使用本地化字符串生成tmpro文本,好的,我将在新的编辑器类中复制所有自定义的textmeshpro编辑器,以便在Unity编辑器中显示本地化文本,并在OnInspectorGui函数上显示下一个代码:

    m_key = EditorGUILayout.TextField(new GUIContent("LOCALIZED KEY:"), localized_key.stringValue, GUILayout.Height(18), GUILayout.ExpandWidth(true));
    localized_key.stringValue = m_key;
    text_prop.stringValue = LanguageWizard.GetGameText(localized_key.stringValue);
    

    其中m_-key只是编辑器类中的一个字符串变量,本地化的m_-key来自扩展类中的属性m_-key,此时实际工作良好,但问题在于,在Unity编辑器中,当试图停用游戏对象或其父对象时,父对象隐藏,tmpro隐藏,但文本属性在编辑器中仍然可见,而此时Le正常的编辑器行为它的隐藏,可能是我有点搞砸了tmpro的自定义编辑器,但如果有人已经经历了一些,请帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   ChrisID58    6 年前

    在对代码进行了研究之后,我和我的团队来到了下一个场景,在这个场景中,我为一些订阅代码和内容放置了OnEnable和OnDisable方法,我们注意到这个类是从textmeshProugui类扩展而来的,这些方法继承自基方法,当我编写m并在编辑器中测试结果,文本通常隐藏

    protected override void OnEnable()
    {
        base.OnEnable();
        //Custom Stuff
    }
    
    protected override void OnDisable()
    {
        base.OnDisable();
        // Custom Stuff
    }
    

    这适用于textmeshpro 1.24版本,下一个版本1.3将导致自定义检查器类出现一些问题。