unityzgy/Assets/ThirdPackages/VRPackage/VRTK/Editor/VRTK_InteractHapticsEditor.cs
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

82 lines
3.1 KiB
C#

namespace VRTK
{
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(VRTK_InteractHaptics))]
public class VRTK_InteractHapticsEditor : Editor
{
SerializedProperty clipOnTouch;
SerializedProperty strengthOnTouch;
SerializedProperty durationOnTouch;
SerializedProperty intervalOnTouch;
SerializedProperty clipOnGrab;
SerializedProperty strengthOnGrab;
SerializedProperty durationOnGrab;
SerializedProperty intervalOnGrab;
SerializedProperty clipOnUse;
SerializedProperty strengthOnUse;
SerializedProperty durationOnUse;
SerializedProperty intervalOnUse;
private void OnEnable()
{
clipOnTouch = serializedObject.FindProperty("clipOnTouch");
strengthOnTouch = serializedObject.FindProperty("strengthOnTouch");
durationOnTouch = serializedObject.FindProperty("durationOnTouch");
intervalOnTouch = serializedObject.FindProperty("intervalOnTouch");
clipOnGrab = serializedObject.FindProperty("clipOnGrab");
strengthOnGrab = serializedObject.FindProperty("strengthOnGrab");
durationOnGrab = serializedObject.FindProperty("durationOnGrab");
intervalOnGrab = serializedObject.FindProperty("intervalOnGrab");
clipOnUse = serializedObject.FindProperty("clipOnUse");
strengthOnUse = serializedObject.FindProperty("strengthOnUse");
durationOnUse = serializedObject.FindProperty("durationOnUse");
intervalOnUse = serializedObject.FindProperty("intervalOnUse");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.Space();
EditorGUILayout.LabelField("Haptics On Touch", EditorStyles.boldLabel);
EditorGUILayout.ObjectField(clipOnTouch, typeof(AudioClip));
if (clipOnTouch.objectReferenceValue == null)
{
EditorGUILayout.PropertyField(strengthOnTouch);
EditorGUILayout.PropertyField(durationOnTouch);
EditorGUILayout.PropertyField(intervalOnTouch);
}
EditorGUILayout.Space();
EditorGUILayout.LabelField("Haptics On Grab", EditorStyles.boldLabel);
EditorGUILayout.ObjectField(clipOnGrab, typeof(AudioClip));
if (clipOnGrab.objectReferenceValue == null)
{
EditorGUILayout.PropertyField(strengthOnGrab);
EditorGUILayout.PropertyField(durationOnGrab);
EditorGUILayout.PropertyField(intervalOnGrab);
}
EditorGUILayout.Space();
EditorGUILayout.LabelField("Haptics On Use", EditorStyles.boldLabel);
EditorGUILayout.ObjectField(clipOnUse, typeof(AudioClip));
if (clipOnUse.objectReferenceValue == null)
{
EditorGUILayout.PropertyField(strengthOnUse);
EditorGUILayout.PropertyField(durationOnUse);
EditorGUILayout.PropertyField(intervalOnUse);
}
serializedObject.ApplyModifiedProperties();
}
}
}