1. 程式人生 > 其它 >Unity Inspector 繪製備註資訊 多語言輔助

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;

效果