zoukankan      html  css  js  c++  java
  • Unity Inspector 绘制备注信息 多语言辅助

    属性

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    [AttributeUsage(AttributeTargets.Field, Inherited = true)]
    public class LanguageLabelAttribute : PropertyAttribute {
    }

    绘制

    using System.Collections;
    using System.Collections.Generic;
    using UnityEditor;
    using UnityEngine;
    
    [CustomPropertyDrawer(typeof(LanguageLabelAttribute))]
    public class LanguageLabelPropertyDrawer : PropertyDrawer {
        private static readonly string errorLanguageKeyTips = "语言表 Key 不存在";
    
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
            var key = property.stringValue;
    
            //var content = !LanguageConfig.Has(key) ? errorLanguageKeyTips : Language.Get(key);
            var content = "哈哈哈";
    
            var propertyWidth = position.width / 4 * 3;
            var singleWidth = position.width / 4;
    
            EditorGUI.BeginProperty(position, label, property);
            var rect = new Rect(position.x, position.y, propertyWidth, position.height);
            EditorGUI.PropertyField(rect, property);
            EditorGUI.EndProperty();
    
            rect = new Rect(rect.xMax, rect.y, singleWidth, rect.height);
            using (new EditorGUI.DisabledScope(true)) {
                EditorGUI.TextField(rect, content);
            }
        }
    }

    使用

        [LanguageLabelAttribute]
        public string str;

    效果

  • 相关阅读:
    16 Errors and Exceptions
    13 Asynchronous Programming
    wpf入门
    iframe cross domain
    ini_set("error_log",$error_path)设置
    MySQL中merge表存储引擎用法
    php中静态属性静态方法的用法
    PHP的SESSIONID生成原理
    composer的基本 使用
    相邻省份数组
  • 原文地址:https://www.cnblogs.com/sanyejun/p/14993709.html
Copyright © 2011-2022 走看看