unityzgy/Assets/ThirdPackages/VRPackage/VRTK/Scripts/Utilities/VRTK_SDKObjectAlias.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

76 lines
2.4 KiB
C#

// SDK Object Alias|Utilities|90063
namespace VRTK
{
using UnityEngine;
/// <summary>
/// The GameObject that the SDK Object Alias script is applied to will become a child of the selected SDK Object.
/// </summary>
public class VRTK_SDKObjectAlias : MonoBehaviour
{
/// <summary>
/// Valid SDK Objects
/// </summary>
/// <param name="Boundary">The main camera rig/play area object that defines the player boundary.</param>
/// <param name="Headset">The main headset camera defines the player head.</param>
public enum SDKObject
{
Boundary,
Headset
}
[Tooltip("The specific SDK Object to child this GameObject to.")]
public SDKObject sdkObject = SDKObject.Boundary;
protected VRTK_SDKManager sdkManager;
protected virtual void OnEnable()
{
sdkManager = VRTK_SDKManager.instance;
if (sdkManager != null)
{
sdkManager.LoadedSetupChanged += LoadedSetupChanged;
}
ChildToSDKObject();
}
protected virtual void OnDisable()
{
if (sdkManager != null && !gameObject.activeSelf)
{
sdkManager.LoadedSetupChanged -= LoadedSetupChanged;
}
}
protected virtual void LoadedSetupChanged(VRTK_SDKManager sender, VRTK_SDKManager.LoadedSetupChangeEventArgs e)
{
if (sdkManager != null)
{
ChildToSDKObject();
}
}
protected virtual void ChildToSDKObject()
{
Vector3 currentPosition = transform.localPosition;
Quaternion currentRotation = transform.localRotation;
Vector3 currentScale = transform.localScale;
Transform newParent = null;
switch (sdkObject)
{
case SDKObject.Boundary:
newParent = VRTK_DeviceFinder.PlayAreaTransform();
break;
case SDKObject.Headset:
newParent = VRTK_DeviceFinder.HeadsetTransform();
break;
}
transform.SetParent(newParent);
transform.localPosition = currentPosition;
transform.localRotation = currentRotation;
transform.localScale = currentScale;
}
}
}