unityzgy/Assets/Scripts/ThisProjectTool/VRCtrl/RepairSub/StepNode/StepNodeAction/SimpleGrabGO.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

48 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
//简单的只可抓取交互的物体 如三角木
public class SimpleGrabGO : VRGrabInterractableBase
{
//逆流程
[Tooltip("具体细节与主流程相反 拆=装,装=拆")]
public bool reverseOperation;
public override void Active(ProcessEnum stepName, UnityAction finishedEven)
{
thisCollider.enabled = true;
SetGrabInteractable(true);
if (!reverseOperation)
{
if (stepName == ProcessEnum.teardown)//拆卸流程 放置到自由位置 视为操作完成
{
atFreePos = finishedEven;
}
else if (stepName == ProcessEnum.assemble)//安装流程 放置到固定位置视为操作完成
{
atFixedPos = finishedEven;
}
}
else//逆转流程 与上述逻辑相反 例如拆车时需要将三角木放置在固定位置
{
if (stepName == ProcessEnum.teardown)//拆卸流程 放置到自由位置 视为操作完成
{
atFixedPos = finishedEven;
}
else if (stepName == ProcessEnum.assemble)//安装流程 放置到固定位置视为操作完成
{
atFreePos = finishedEven;
}
}
}
public override void UnActive(ProcessEnum stepName)
{
base.UnActive(stepName);
if (stepName == ProcessEnum.assemble)//安装到车上后禁用collider 避免出现冲突情况
thisCollider.enabled = false;
SetGrabInteractable(false);
}
}