- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
83 lines
2.5 KiB
Plaintext
83 lines
2.5 KiB
Plaintext
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using VRTK;
|
|
using DG.Tweening;
|
|
|
|
/// <summary>
|
|
/// 普通螺栓交互控制类 触发控制 默认是安装好的 每次激活只能操作一次
|
|
/// </summary>
|
|
public class SimpleLuoShuan : VRUsableStepActionBase
|
|
{
|
|
Vector3 fixedPos;
|
|
[Tooltip("拆下时移动方向")]
|
|
public Vector3 moveLocalAixs;//拆装时移动方向和数值
|
|
[Tooltip("卸下时是否隐藏")]
|
|
public bool unFixedHide;
|
|
|
|
Collider thisCollider;
|
|
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
fixedPos = this.transform.localPosition;
|
|
thisCollider = this.GetComponent<Collider>();
|
|
|
|
}
|
|
|
|
private void UnFixedMoveOver()
|
|
{
|
|
if (unFixedHide)
|
|
{
|
|
this.GetComponent<MeshRenderer>().enabled = false;
|
|
if (thisCollider)
|
|
thisCollider.enabled = false;
|
|
}
|
|
|
|
unFixedOver?.Invoke();
|
|
unFixedOver = null;//执行一次后清除事件 避免重复触发
|
|
}
|
|
|
|
////装上螺丝指令触发
|
|
//protected override void InteractableObjectUnused(object sender, InteractableObjectEventArgs e)
|
|
//{
|
|
// //SetUsable(false);//安装过程中无法再次交互 避免双击
|
|
// //this.transform.DOLocalMove(fixedPos, 1f).OnComplete(FixedMoveOver);//播放安装动画
|
|
//}
|
|
|
|
//安装完成
|
|
private void FixedMoveOver()
|
|
{
|
|
fixedOver?.Invoke();
|
|
fixedOver = null;
|
|
}
|
|
|
|
//激活时若当前螺栓处于隐藏状态则显示螺栓
|
|
public override void Active(ProcessEnum stepName, UnityAction nodeFinishedEvent)
|
|
{
|
|
base.Active(stepName, nodeFinishedEvent);
|
|
if (unFixedHide && this.GetComponent<MeshRenderer>().enabled == false)
|
|
{
|
|
this.GetComponent<MeshRenderer>().enabled = true;
|
|
if (thisCollider)
|
|
thisCollider.enabled = true;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// VRUsable 主动/同步触发时执行
|
|
/// </summary>
|
|
public override void OnUsed()
|
|
{
|
|
if (!interactableObject.isUsable) return;
|
|
SetUsable(false);//只能触发一次 避免重复触发结束事件
|
|
if (processName == ProcessEnum.teardown)
|
|
this.transform.DOLocalMove(fixedPos + moveLocalAixs, 1f).OnComplete(UnFixedMoveOver);//播放拆卸动画
|
|
else
|
|
{
|
|
this.transform.DOLocalMove(fixedPos, 1f).OnComplete(FixedMoveOver);//播放安装动画
|
|
}
|
|
}
|
|
}
|