unityzgy/.svn/pristine/f6/f6354a67fcae427f7ea5c3f2f9190fde407377be.svn-base
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

112 lines
4.5 KiB
Plaintext

using System;
using UnityEditor;
using UnityEngine;
namespace UnityStandardAssets.ImageEffects
{
[CustomEditor (typeof( NoiseAndGrain))]
class NoiseAndGrainEditor : Editor
{
SerializedObject serObj;
SerializedProperty intensityMultiplier;
SerializedProperty generalIntensity;
SerializedProperty blackIntensity;
SerializedProperty whiteIntensity;
SerializedProperty midGrey;
SerializedProperty dx11Grain;
SerializedProperty softness;
SerializedProperty monochrome;
SerializedProperty intensities;
SerializedProperty tiling;
SerializedProperty monochromeTiling;
SerializedProperty noiseTexture;
SerializedProperty filterMode;
void OnEnable () {
serObj = new SerializedObject (target);
intensityMultiplier = serObj.FindProperty("intensityMultiplier");
generalIntensity = serObj.FindProperty("generalIntensity");
blackIntensity = serObj.FindProperty("blackIntensity");
whiteIntensity = serObj.FindProperty("whiteIntensity");
midGrey = serObj.FindProperty("midGrey");
dx11Grain = serObj.FindProperty("dx11Grain");
softness = serObj.FindProperty("softness");
monochrome = serObj.FindProperty("monochrome");
intensities = serObj.FindProperty("intensities");
tiling = serObj.FindProperty("tiling");
monochromeTiling = serObj.FindProperty("monochromeTiling");
noiseTexture = serObj.FindProperty("noiseTexture");
filterMode = serObj.FindProperty("filterMode");
}
public override void OnInspectorGUI () {
serObj.Update();
EditorGUILayout.LabelField("Overlays animated noise patterns", EditorStyles.miniLabel);
EditorGUILayout.PropertyField(dx11Grain, new GUIContent("DirectX 11 Grain"));
if (dx11Grain.boolValue && !(target as NoiseAndGrain).Dx11Support()) {
EditorGUILayout.HelpBox("DX11 mode not supported (need DX11 GPU and enable DX11 in PlayerSettings)", MessageType.Info);
}
EditorGUILayout.PropertyField(monochrome, new GUIContent("Monochrome"));
EditorGUILayout.Separator();
EditorGUILayout.PropertyField(intensityMultiplier, new GUIContent("Intensity Multiplier"));
EditorGUILayout.PropertyField(generalIntensity, new GUIContent(" General"));
EditorGUILayout.PropertyField(blackIntensity, new GUIContent(" Black Boost"));
EditorGUILayout.PropertyField(whiteIntensity, new GUIContent(" White Boost"));
midGrey.floatValue = EditorGUILayout.Slider( new GUIContent(" Mid Grey (for Boost)"), midGrey.floatValue, 0.0f, 1.0f);
if (monochrome.boolValue == false) {
Color c = new Color(intensities.vector3Value.x,intensities.vector3Value.y,intensities.vector3Value.z,1.0f);
c = EditorGUILayout.ColorField(new GUIContent(" Color Weights"), c);
intensities.vector3Value = new Vector3(c.r, c.g, c.b);
}
if (!dx11Grain.boolValue) {
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Noise Shape");
EditorGUILayout.PropertyField(noiseTexture, new GUIContent(" Texture"));
EditorGUILayout.PropertyField(filterMode, new GUIContent(" Filter"));
}
else {
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Noise Shape");
}
softness.floatValue = EditorGUILayout.Slider( new GUIContent(" Softness"),softness.floatValue, 0.0f, 0.99f);
if (!dx11Grain.boolValue) {
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Advanced");
if (monochrome.boolValue == false)
{
Vector3 temp = tiling.vector3Value;
temp.x = EditorGUILayout.FloatField(new GUIContent(" Tiling (Red)"), tiling.vector3Value.x);
temp.y = EditorGUILayout.FloatField(new GUIContent(" Tiling (Green)"), tiling.vector3Value.y);
temp.z = EditorGUILayout.FloatField(new GUIContent(" Tiling (Blue)"), tiling.vector3Value.z);
tiling.vector3Value = temp;
}
else {
EditorGUILayout.PropertyField(monochromeTiling, new GUIContent(" Tiling"));
}
}
serObj.ApplyModifiedProperties();
}
}
}