598 lines
27 KiB
C#
598 lines
27 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using UnityEngine;
|
||
using UnityEngine.EventSystems;
|
||
using UnityEngine.UI;
|
||
using ZXK.Framework;
|
||
using ZXK.UTility;
|
||
using DG.Tweening;
|
||
/*******************************************************************************
|
||
*Create By CG
|
||
*Function 练习和考核模式控制
|
||
*******************************************************************************/
|
||
namespace ZXK.BYSS
|
||
{
|
||
public class PracticeAndExamPanel : UIBase
|
||
{
|
||
[MyReadOnly]
|
||
public PracticeAndExamInSceneCtrl _CurTrainExamSceneCtrl;
|
||
|
||
private Vector3 _cameraPos1 = new Vector3(7.515f, 1.706f, -1.084f);
|
||
private Vector3 _cameraRot1 = new Vector3(19.4f, -90f, 0);
|
||
|
||
private Vector3 _cameraPos2 = new Vector3(7.515f, 1.706f, 10.92f);
|
||
private Vector3 _cameraRot2 = new Vector3(19.4f, -90f, 0);
|
||
|
||
private Vector3 _cameraPos3 = new Vector3(6.2803f, 1.3419f, -13.3151f);
|
||
private Vector3 _cameraRot3 = new Vector3(19.317f, -90f, 0);
|
||
|
||
private Vector3 _cameraPos4 = new Vector3(1.31f, 1.9f, 7.23f);
|
||
private Vector3 _cameraRot4 = new Vector3(19.317f, -90f, 0);
|
||
|
||
private Vector3 _cameraPos5 = new Vector3(0.6677701f, 1.977f, -8.322083f);
|
||
private Vector3 _cameraRot5 = new Vector3(30.667f, -90.703f, 0);
|
||
|
||
//当前操作步骤
|
||
private DataItemModel _CurProcess = null;
|
||
//选择的工具生成的临时物体存放此处
|
||
private Transform _toolSeleTempParentTran = null;
|
||
//程序调试按钮
|
||
//private Button _debugBtn = null;
|
||
//刚进入场景有个提示,此时后面出现蒙版不允许点击其他位置
|
||
private GameObject _maskPanel = null;
|
||
|
||
private int _packageNumber = 0;
|
||
|
||
//当前步骤需要选择的工具集合
|
||
private List<string> _curNeedTools = new List<string>();
|
||
//选择的工具不是null,就说明已经选择了,否则就没选
|
||
private string _selectToolName = null;
|
||
private GameObject _curSelectToolGeo = null;
|
||
private int _selectToolNumber = 0;//当前选择工具数量
|
||
//鼠标当前悬浮物体,用于区分鼠标离开物体触发事件
|
||
private ItemModelCtrl _curMouseHoverCtrl = null;
|
||
|
||
|
||
private Ray _cameraRay;
|
||
|
||
|
||
|
||
protected override void Awake()
|
||
{
|
||
base.Awake();
|
||
EventCenterManager.Instance.AddEventListener(EventEnum.PickTool, PickToolCall);
|
||
EventCenterManager.Instance.AddEventListener(EventEnum.ChangeProcess, ChangeProcessCall);
|
||
}
|
||
private void Start()
|
||
{
|
||
_toolSeleTempParentTran = GetWedage("DragTools_N").transform;
|
||
_maskPanel = GetWedage("EnterMask_N");
|
||
|
||
_CurProcess = null;
|
||
EventCenterManager.Instance.Dispatch(EventEnum.ChangeProcess, this, null);
|
||
GetTools();//获取工具
|
||
GetCurNeedTools();
|
||
|
||
|
||
|
||
switch (AppManagement.Instance._CurType)
|
||
{
|
||
case EnumCtrl.Type.None:
|
||
break;
|
||
case EnumCtrl.Type.XHBY:
|
||
Camera.main.transform.DOMove(_cameraPos1, 0f);
|
||
Camera.main.transform.DORotate(_cameraRot1, 0f);
|
||
break;
|
||
case EnumCtrl.Type.QDCY:
|
||
Camera.main.transform.DOMove(_cameraPos2, 0f);
|
||
Camera.main.transform.DORotate(_cameraRot2, 0f);
|
||
break;
|
||
case EnumCtrl.Type.CLFJ:
|
||
Camera.main.transform.DOMove(_cameraPos3, 0f);
|
||
Camera.main.transform.DORotate(_cameraRot3, 0f);
|
||
break;
|
||
case EnumCtrl.Type.ZNYD:
|
||
Camera.main.transform.DOMove(_cameraPos4, 0f);
|
||
Camera.main.transform.DORotate(_cameraRot4, 0f);
|
||
break;
|
||
case EnumCtrl.Type.BYSS:
|
||
Camera.main.transform.DOMove(_cameraPos5, 0f);
|
||
Camera.main.transform.DORotate(_cameraRot5, 0f);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
//刚进入弹窗提示
|
||
_maskPanel.gameObject.SetActive(true);
|
||
|
||
|
||
|
||
if (_CurTrainExamSceneCtrl!=null&&_CurTrainExamSceneCtrl.speakManager!=null)
|
||
{
|
||
///音频管理器设置音频组,播放音频
|
||
_CurTrainExamSceneCtrl.speakManager.ChangeModelAudio("设备组装");
|
||
//音频管理器播放配音
|
||
_CurTrainExamSceneCtrl.speakManager.Init();
|
||
_CurTrainExamSceneCtrl.speakManager.PlayAudioCilp();
|
||
}
|
||
|
||
|
||
|
||
}
|
||
private void OnEnable()
|
||
{
|
||
string hintStr = null;
|
||
foreach (HintModel.AppHintData item in AppManagement.Instance._HintData._AppHints)
|
||
{
|
||
if (item._AppName.Equals(EnumCtrl.GetEnumDescription(AppManagement.Instance._CurType)))
|
||
{
|
||
hintStr = item._TrainHints[0]._TrainHint;
|
||
}
|
||
}
|
||
|
||
PopUpMng.PopToast("实训任务", hintStr, "确定", () =>
|
||
{
|
||
_maskPanel.gameObject.SetActive(false);
|
||
});
|
||
}
|
||
private void Update()
|
||
{
|
||
if (!string.IsNullOrEmpty(_selectToolName) && _curSelectToolGeo)
|
||
{
|
||
Vector3 worldPos = Camera.main.ScreenToWorldPoint(new Vector3(
|
||
Input.mousePosition.x, Input.mousePosition.y, 1.0f));
|
||
_curSelectToolGeo.transform.position = worldPos;
|
||
ItemModelCtrl itemCtrl = null;
|
||
_cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||
if (PopUpMng._TriAble && Physics.Raycast(_cameraRay, out RaycastHit cast) &&
|
||
!EventSystem.current.IsPointerOverGameObject())
|
||
{
|
||
//Debug.Log(cast.transform.name);
|
||
//Debug.DrawLine(_cameraRay.origin, cast.point, Color.red, 0.5f);
|
||
itemCtrl = cast.transform.GetComponent<ItemModelCtrl>();
|
||
if (itemCtrl)
|
||
{
|
||
_curSelectToolGeo.transform.position = itemCtrl.transform.position;
|
||
_curSelectToolGeo.transform.rotation = itemCtrl.transform.rotation;
|
||
//_curSelectToolGeo.transform.localScale = itemCtrl.transform.localScale;
|
||
|
||
_curMouseHoverCtrl?.DefaultAlphaState();
|
||
itemCtrl.HoverState();
|
||
_curMouseHoverCtrl = itemCtrl;
|
||
|
||
if (Input.GetMouseButtonDown(0))
|
||
{
|
||
if (_curMouseHoverCtrl)
|
||
{
|
||
//判断位置放置是否准确
|
||
bool right = false;
|
||
string hoverProess = _curMouseHoverCtrl._ProcessName;
|
||
string curProess = _CurProcess.ProcessName;
|
||
//int indexH = hoverProess.LastIndexOf('(');
|
||
//int indexC = curProess.LastIndexOf('(');
|
||
//if (indexH > 0 && indexC > 0)
|
||
//{
|
||
// hoverProess = hoverProess.Substring(0, indexH);
|
||
// curProess = curProess.Substring(0, indexC);
|
||
//}
|
||
if (hoverProess.Equals(curProess))
|
||
{
|
||
for (int i = 0; i < _curMouseHoverCtrl._NeedToolsName.Length; i++)
|
||
{
|
||
if (_curMouseHoverCtrl._NeedToolsName[i].Equals(_selectToolName))
|
||
{
|
||
right = true;
|
||
}
|
||
}
|
||
}
|
||
if (!right)
|
||
{//放错了
|
||
_CurProcess.RealityPlace = _curMouseHoverCtrl._ProcessName;
|
||
PopUpMng.PopCustomFailToast("位置错误", "您当前选择的元器件不在此处放置,请选择其他位置安装放置", "确认", () =>
|
||
{
|
||
_packageNumber++;
|
||
if (AppManagement.Instance._CurModel == EnumCtrl.Model.Train&&
|
||
_packageNumber == 3)
|
||
{
|
||
ErroPackageAuto();
|
||
}
|
||
else
|
||
if (AppManagement.Instance._CurModel == EnumCtrl.Model.Teach&&
|
||
_packageNumber == 3)
|
||
{
|
||
ErroPackageAuto();
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
_selectToolNumber++;
|
||
|
||
|
||
|
||
}
|
||
|
||
//判断工具是否选择全面,全面后显示零件
|
||
if (_selectToolNumber == _curMouseHoverCtrl._NeedToolsName.Length)
|
||
{
|
||
PopUpMng.PopCustomSucToast("操作成功", "恭喜你成功完成设备组装", "确认", () =>
|
||
{
|
||
_CurTrainExamSceneCtrl.ShowProcessPart(_CurProcess);
|
||
_selectToolNumber = 0;
|
||
if (_CurTrainExamSceneCtrl.speakManager!=null)
|
||
{
|
||
//增加音频索引号
|
||
_CurTrainExamSceneCtrl.speakManager.AddAudioCilp();
|
||
_CurTrainExamSceneCtrl.speakManager.PlayAudioCilp();
|
||
}
|
||
|
||
|
||
|
||
if (AppManagement.Instance._CurModel == EnumCtrl.Model.Exam)
|
||
{
|
||
|
||
//截屏操作为图片功能
|
||
#if UNITY_EDITOR || UNITY_STANDALONE
|
||
#region PC端
|
||
|
||
string temppath = System.IO.Path.Combine(
|
||
System.IO.Path.GetTempPath(), //ConstCtrl.DATA_PICTURE_TEMP_FOLDER,
|
||
AppManagement.Instance._CurType.ToString(),
|
||
_CurProcess.ProcessName + ".png");
|
||
|
||
#endregion
|
||
#elif UNITY_WEBGL
|
||
|
||
//操作正确截屏
|
||
#region 网页版
|
||
string temppath = "";
|
||
#endregion
|
||
#endif
|
||
UtilitiesMng.StartScreenshot(temppath, (string vul) =>
|
||
{
|
||
#if UNITY_EDITOR || UNITY_STANDALONE
|
||
_CurProcess.RightImg = temppath;
|
||
#elif UNITY_WEBGL
|
||
WDebug.Log("保存截图:" + _CurProcess.RightImg);
|
||
_CurProcess.RightImg = vul;
|
||
#endif
|
||
_selectToolName = null;
|
||
_curMouseHoverCtrl = null;
|
||
EventCenterManager.Instance.Dispatch(EventEnum.ChangeProcess, this, null);
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
else if (AppManagement.Instance._CurModel == EnumCtrl.Model.Train)
|
||
{
|
||
_selectToolName = null;
|
||
_curMouseHoverCtrl = null;
|
||
EventCenterManager.Instance.Dispatch(EventEnum.ChangeProcess, this, null);
|
||
WDebug.Log("Train!!!!!!!!!!!!!!!!!!!!!!");
|
||
}
|
||
else if (AppManagement.Instance._CurModel == EnumCtrl.Model.Teach)
|
||
{
|
||
_selectToolName = null;
|
||
_curMouseHoverCtrl = null;
|
||
EventCenterManager.Instance.Dispatch(EventEnum.ChangeProcess, this, null);
|
||
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
_curMouseHoverCtrl?.DefaultAlphaState();
|
||
_selectToolName = null;
|
||
_curMouseHoverCtrl = null;
|
||
}
|
||
}
|
||
Destroy(_curSelectToolGeo);
|
||
_selectToolName = null;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|
||
}
|
||
if (itemCtrl == null)
|
||
{
|
||
_curMouseHoverCtrl?.DefaultAlphaState();
|
||
}
|
||
}
|
||
}
|
||
protected override void OnDestroy()
|
||
{
|
||
base.OnDestroy();
|
||
EventCenterManager.Instance.RemoveListener(EventEnum.PickTool, PickToolCall);
|
||
EventCenterManager.Instance.RemoveListener(EventEnum.ChangeProcess, ChangeProcessCall);
|
||
|
||
//_isShowVideo = false;
|
||
// _videoTran.gameObject.SetActive(false);
|
||
|
||
}
|
||
/// <summary>
|
||
/// 从总数居中获取工具
|
||
/// </summary>
|
||
private void GetTools()
|
||
{
|
||
List<string> tools = new List<string>();
|
||
foreach (DataItemModel itemValue in AppManagement.Instance._AppModel.DataJDSBArray[EnumCtrl.GetEnumDescription(AppManagement.Instance._CurType)].Values)
|
||
{
|
||
for (int i = 0; i < itemValue.Tools.Length; i++)
|
||
{
|
||
if (!tools.Contains(itemValue.Tools[i]))
|
||
{
|
||
tools.Add(itemValue.Tools[i]);
|
||
}
|
||
}
|
||
}
|
||
UIBase toolsUI = UI_Manage.Instance.ShowPanel("ToolsPanel", -1, transform);
|
||
ToolsPanel toosCtrl = toolsUI.GetComponent<ToolsPanel>();
|
||
Transform toosTran = toolsUI.GetComponent<Transform>();
|
||
toosTran.SetAsFirstSibling();
|
||
toosCtrl.Init(tools.ToArray());
|
||
}
|
||
/// <summary>
|
||
/// 获取当前步骤需要的工具集合
|
||
/// </summary>
|
||
private void GetCurNeedTools()
|
||
{
|
||
string[] toolsTemp = AppManagement.Instance._AppModel.DataJDSBArray[
|
||
EnumCtrl.GetEnumDescription(AppManagement.Instance._CurType)][_CurProcess.ProcessName].Tools;
|
||
for (int i = 0; i < toolsTemp.Length; i++)
|
||
{
|
||
_curNeedTools.Add(toolsTemp[i]);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 鼠标在工具图标上按下
|
||
/// </summary>
|
||
private void PickToolCall(object sender, System.EventArgs e)
|
||
{
|
||
if (!string.IsNullOrEmpty(_selectToolName)) return;
|
||
ToolArgs data = e as ToolArgs;
|
||
//Debug.Log($"订阅者接收到{data._ToolName}的消息");
|
||
_selectToolName = data._ToolName;
|
||
|
||
bool selRight = false;
|
||
string[] curSelectTool = _CurProcess.Tools;
|
||
for (int i = 0; i < curSelectTool.Length; i++)
|
||
{
|
||
if (curSelectTool[i].Equals(_selectToolName))
|
||
{
|
||
selRight = true;
|
||
break;
|
||
}
|
||
}
|
||
if (selRight)
|
||
{
|
||
GameObject itemPrefab = null;
|
||
foreach (var item in _CurTrainExamSceneCtrl._toolPrefab)
|
||
{
|
||
if (item.name.Equals(_selectToolName))
|
||
{
|
||
itemPrefab = item;
|
||
break;
|
||
}
|
||
}
|
||
if (itemPrefab)
|
||
{
|
||
_curSelectToolGeo = Instantiate(itemPrefab, _CurTrainExamSceneCtrl._ToolsTemp);
|
||
_curSelectToolGeo.name = _selectToolName;
|
||
_curSelectToolGeo.SetActive(true);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_CurProcess.RealityTools = new string[] { _selectToolName };
|
||
PopUpMng.PopCustomFailToast("操作错误", "请按照操作提示选择合适的元器件,放入指定区域", "确认", () =>
|
||
{
|
||
_selectToolName = null;
|
||
_packageNumber++;
|
||
if (AppManagement.Instance._CurModel == EnumCtrl.Model.Train &&
|
||
_packageNumber == 3)
|
||
{
|
||
ErroPackageAuto();
|
||
}
|
||
if (AppManagement.Instance._CurModel == EnumCtrl.Model.Teach &&
|
||
_packageNumber == 3)
|
||
{
|
||
ErroPackageAuto();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 赋值当前进行到第几步
|
||
/// </summary>
|
||
public void ChangeProcessCall(object sender, System.EventArgs e)
|
||
{
|
||
if (_CurProcess == null)
|
||
{//刚开始
|
||
_CurProcess = AppManagement.Instance._AppModel.DataJDSBArray[
|
||
EnumCtrl.GetEnumDescription(AppManagement.Instance._CurType)].Values.First();
|
||
}
|
||
else
|
||
{
|
||
Dictionary<string, DataItemModel> curprocess = AppManagement.Instance._AppModel.DataJDSBArray[EnumCtrl.GetEnumDescription(AppManagement.Instance._CurType)];
|
||
if (_CurProcess.ID == curprocess.Count - 1)
|
||
{ //最后一步提示文本设置
|
||
string curtype="";
|
||
switch (AppManagement.Instance._CurType)
|
||
{
|
||
|
||
case EnumCtrl.Type.XHBY:
|
||
curtype = "循环搬运机械手";
|
||
break;
|
||
case EnumCtrl.Type.QDCY:
|
||
curtype = "气动冲压";
|
||
break;
|
||
case EnumCtrl.Type.CLFJ:
|
||
curtype = "材料分拣";
|
||
|
||
break;
|
||
case EnumCtrl.Type.ZNYD:
|
||
curtype = "智能运动";
|
||
break;
|
||
case EnumCtrl.Type.BYSS:
|
||
curtype = "搬运输送";
|
||
break;
|
||
|
||
}
|
||
|
||
PopUpMng.PopCustomSucToast("组装完成", "恭喜你成功完成"+ curtype + "单元所有设备组装", "开始连线", () =>
|
||
{
|
||
AppManagement.Instance.ChangeModel(EnumCtrl.Model.Line);
|
||
});
|
||
}
|
||
if (curprocess.Keys.Contains(_CurProcess.ProcessName))
|
||
{
|
||
int id = curprocess[_CurProcess.ProcessName].ID;
|
||
foreach (DataItemModel item in curprocess.Values)
|
||
{
|
||
if (item.ID == id + 1)
|
||
{
|
||
_CurProcess = item;
|
||
//搬运输送特殊写法
|
||
if (AppManagement.Instance._CurType == EnumCtrl.Type.BYSS)
|
||
{//由于固定块太小了,还嵌在滑块中,所以在组装固定块时,取消滑块触发区域
|
||
if (_CurProcess.ProcessName.Equals("皮带固定块"))
|
||
{
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if(_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_JiXieShouZhiChengJia")||
|
||
_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_TiShengJiGou2") ||
|
||
_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_TaiShengQiGang") ||
|
||
_CurTrainExamSceneCtrl._partModel[i].name.Equals("组006"))
|
||
{
|
||
_CurTrainExamSceneCtrl._partModel[i].GetComponent<Collider>().enabled = false;
|
||
}
|
||
|
||
if (_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_HuaKuai"))
|
||
{
|
||
Transform HuaKuaiTran = _CurTrainExamSceneCtrl._partModel[i].transform;
|
||
_CurTrainExamSceneCtrl.GetComponentInChildren<Animator>().enabled = false;
|
||
WDebug.Log("滑块反转");
|
||
HuaKuaiTran.DOLocalRotate(Vector3.left * 90.0f, 0.5f);
|
||
}
|
||
}
|
||
}
|
||
else if (_CurProcess.ProcessName.Equals("机械手支撑架"))
|
||
{
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if (_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_JiXieShouZhiChengJia"))
|
||
{
|
||
_CurTrainExamSceneCtrl._partModel[i].GetComponent<Collider>().enabled = true;
|
||
}
|
||
}
|
||
}
|
||
else if (_CurProcess.ProcessName.Equals("提升机构"))
|
||
{
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if (_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_TiShengJiGou2"))
|
||
{
|
||
_CurTrainExamSceneCtrl._partModel[i].GetComponent<Collider>().enabled = true;
|
||
}
|
||
}
|
||
}
|
||
else if (_CurProcess.ProcessName.Equals("抬升气缸"))
|
||
{
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if (_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_TaiShengQiGang"))
|
||
{
|
||
_CurTrainExamSceneCtrl._partModel[i].GetComponent<Collider>().enabled = true;
|
||
}
|
||
}
|
||
}
|
||
else if (_CurProcess.ProcessName.Equals("气动手指"))
|
||
{
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if (_CurTrainExamSceneCtrl._partModel[i].name.Equals("组006"))
|
||
{
|
||
_CurTrainExamSceneCtrl._partModel[i].GetComponent<Collider>().enabled = true;
|
||
}
|
||
}
|
||
}
|
||
if (_CurProcess.ProcessName.Equals("主电机同步轮+固定座"))
|
||
{
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if (_CurTrainExamSceneCtrl._partModel[i].name.Equals("SM_HuaKuai"))
|
||
{
|
||
Transform HuaKuaiTran = _CurTrainExamSceneCtrl._partModel[i].transform;
|
||
HuaKuaiTran.DOLocalRotate(Vector3.right * 90.0f, 0.5f).OnComplete(()=> {
|
||
_CurTrainExamSceneCtrl.GetComponentInChildren<Animator>().enabled = true;
|
||
WDebug.Log("滑块规整");
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
_packageNumber = 0;
|
||
PopUpMng.PopAlert(_CurProcess.Hint, -1);
|
||
}
|
||
/// <summary>
|
||
/// 组装错误的时候播放自动组装动画
|
||
/// </summary>
|
||
private void ErroPackageAuto()
|
||
{
|
||
GameObject itemPrefab = null;
|
||
foreach (var item in _CurTrainExamSceneCtrl._toolPrefab)
|
||
{
|
||
if (item.name.Equals(_CurProcess.Tools[0]))
|
||
{
|
||
itemPrefab = item;
|
||
break;
|
||
}
|
||
}
|
||
if (itemPrefab)
|
||
{
|
||
_curSelectToolGeo = Instantiate(itemPrefab, _CurTrainExamSceneCtrl._ToolsTemp);
|
||
_curSelectToolGeo.name = _selectToolName;
|
||
_curSelectToolGeo.SetActive(true);
|
||
_curSelectToolGeo.transform.position = Camera.main.transform.position;
|
||
}
|
||
|
||
Vector3 targPos = Vector3.zero;
|
||
Quaternion targRat = new Quaternion();
|
||
Vector3 targScale = Vector3.zero;
|
||
for (int i = 0; i < _CurTrainExamSceneCtrl._partModel.Length; i++)
|
||
{
|
||
if (_CurTrainExamSceneCtrl._partModel[i]._ProcessName.Equals(_CurProcess.ProcessName))
|
||
{
|
||
targPos = _CurTrainExamSceneCtrl._partModel[i].transform.position;
|
||
targRat = _CurTrainExamSceneCtrl._partModel[i].transform.rotation;
|
||
targScale = _CurTrainExamSceneCtrl._partModel[i].transform.localScale;
|
||
}
|
||
}
|
||
Sequence sequence = DOTween.Sequence();
|
||
sequence.Append(_curSelectToolGeo.transform.DOMove(targPos, 1.0f))
|
||
.Insert(0, _curSelectToolGeo.transform.DORotate(targRat.eulerAngles, 1.0f))
|
||
.Insert(0, _curSelectToolGeo.transform.DOScale(targScale, 1.0f))
|
||
.OnComplete(() =>
|
||
{
|
||
_packageNumber = 0;
|
||
Destroy(_curSelectToolGeo);
|
||
_CurTrainExamSceneCtrl.ShowProcessPart(_CurProcess);
|
||
_selectToolNumber = 0;
|
||
_curMouseHoverCtrl = null;
|
||
EventCenterManager.Instance.Dispatch(EventEnum.ChangeProcess, this, null);
|
||
});
|
||
}
|
||
}
|
||
} |