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;

    效果

  • 相关阅读:
    Lumen源码分析之 一步一步带你实现Lumen容器(一)
    php 注册器模式 工厂模式
    理解 PHP 依赖注入 和 控制反转
    composer使用git作为仓储
    monolog记录日志
    Jupyter Notebook快捷键
    图像灰度化
    一道算法题:拼数字
    [转]Vue生态系统中的库
    window.postMessage实现网页间通信
  • 原文地址:https://www.cnblogs.com/sanyejun/p/14993709.html
Copyright © 2011-2022 走看看