2025-01-02 12:15:45 +08:00
|
|
|
|
using CG.Framework;
|
|
|
|
|
|
using CG.UTility;
|
|
|
|
|
|
using DG.Tweening;
|
|
|
|
|
|
using KinematicCharacterController;
|
|
|
|
|
|
using KinematicCharacterController.Examples;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Collections.Generic;
|
2025-01-02 16:24:37 +08:00
|
|
|
|
using System.IO;
|
2025-01-02 12:15:45 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
|
*Create By CG
|
|
|
|
|
|
*Function
|
|
|
|
|
|
*******************************************************************************/
|
|
|
|
|
|
namespace ZXK.LouDiXvMuNiu
|
|
|
|
|
|
{
|
|
|
|
|
|
public class OperationStepPanel : UIBase
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
protected Transform _stepContent = null;
|
|
|
|
|
|
protected GameObject _stepBigItemPrefab = null;
|
|
|
|
|
|
protected GameObject _stepSmallItemPrefab = null;
|
|
|
|
|
|
|
|
|
|
|
|
private List<GameObject> _stepBigs = new List<GameObject>();
|
|
|
|
|
|
private List<GameObject> _stepChildrens = new List<GameObject>();
|
|
|
|
|
|
|
|
|
|
|
|
protected const float _smallItemSizeY = 25.0f;//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
|
protected const float _smallItemIntervalY = 5.0f;//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
protected const float _smallParentInitPosY = -40.0f;//<2F><><EFBFBD><EFBFBD><EEB8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>
|
|
|
|
|
|
private const float _openCloseAnmSpeed = 0.01f;//<2F><><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȿ<D9B6><C8BF><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
private GameObject _introduceGeo = null;
|
2025-01-03 15:01:16 +08:00
|
|
|
|
private GameObject imgIntroduceGeo = null;
|
2025-01-02 12:15:45 +08:00
|
|
|
|
private Text _trainExplainTxt = null;
|
|
|
|
|
|
private Button _nextBtn = null;
|
|
|
|
|
|
private Toggle _defaultCameraTRTog = null;
|
|
|
|
|
|
private Toggle _nearCameraTRTog = null;
|
|
|
|
|
|
|
2025-01-02 16:24:37 +08:00
|
|
|
|
#region <EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
|
private KinematicCharacterMotor kinematic = null;
|
|
|
|
|
|
private ExampleCharacterCamera characterCamera = null;
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
2025-01-02 12:15:45 +08:00
|
|
|
|
protected override void Awake()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.Awake();
|
|
|
|
|
|
|
|
|
|
|
|
_stepContent = GetWedage("StepContent_N").transform;
|
|
|
|
|
|
_stepBigItemPrefab = GetWedage("StepBigItemPrefab_N");
|
|
|
|
|
|
_stepSmallItemPrefab = GetWedage("StepSmallItemPrefab_N");
|
|
|
|
|
|
_introduceGeo = GetWedage("introduce_N");
|
2025-01-03 15:01:16 +08:00
|
|
|
|
imgIntroduceGeo = GetWedage("imgIntroduce_N");
|
2025-01-02 12:15:45 +08:00
|
|
|
|
_trainExplainTxt = GetWedage("TrainExplain_N").GetComponent<Text>();
|
|
|
|
|
|
_nextBtn = GetWedage("NextBtn_N").GetComponent<Button>();
|
|
|
|
|
|
_defaultCameraTRTog = GetWedage("DefaultTR_N").GetComponent<Toggle>();
|
|
|
|
|
|
_nearCameraTRTog = GetWedage("NearTR_N").GetComponent<Toggle>();
|
|
|
|
|
|
|
|
|
|
|
|
List<NiuData> dataSrc = GameManager.Instance._DataNiuHandler.NiuStepTypeDic[GameManager.Instance._CurModelType];
|
|
|
|
|
|
List<string[]> dataTemp = new List<string[]>();
|
|
|
|
|
|
for (int i = 0; i < dataSrc.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
string[] msg = new string[4] { dataSrc[i].id.ToString(), dataSrc[i].TaskName, dataSrc[i].ThreeTaskName, dataSrc[i].TaskType };
|
|
|
|
|
|
dataTemp.Add(msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-02 16:24:37 +08:00
|
|
|
|
kinematic = Camera.main.GetComponent<CameraControl>()._CameraCtrl.transform.GetComponent<KinematicCharacterMotor>();
|
|
|
|
|
|
characterCamera = Camera.main.GetComponent<ExampleCharacterCamera>();
|
|
|
|
|
|
|
2025-01-02 12:15:45 +08:00
|
|
|
|
//TODO <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
switch (GameManager.Instance._CurModelType)
|
|
|
|
|
|
{
|
|
|
|
|
|
case ConstCtrl.ModuleName_TQFAQCL:
|
|
|
|
|
|
case ConstCtrl.ModuleName_CSPLCL:
|
|
|
|
|
|
case ConstCtrl.ModuleName_RGSJ:
|
|
|
|
|
|
case ConstCtrl.ModuleName_CP:
|
|
|
|
|
|
case ConstCtrl.ModuleName_PTYZ:
|
|
|
|
|
|
case ConstCtrl.ModuleName_YYZD:
|
|
|
|
|
|
ChangeCameraPos(new Vector3(2.2f, -1.19f, -2.24f), new Vector3(18.474f, -38.834f, 0));
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ConstCtrl.ModuleName_PTXZ:
|
|
|
|
|
|
case ConstCtrl.ModuleName_JZLVJC:
|
|
|
|
|
|
ChangeCameraPos(new Vector3(1.071f, -2.406f, 39.0302f), new Vector3(7.35f, 0, 0));
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
_defaultCameraTRTog.onValueChanged.AddListener((isOn) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (isOn)
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuData curStep = GameManager.Instance._DataNiuHandler.CurNiuHandler.Value;
|
|
|
|
|
|
CameraSetDefaultTR(curStep);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
_nearCameraTRTog.onValueChanged.AddListener((isOn) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (isOn)
|
|
|
|
|
|
{
|
2025-01-02 16:24:37 +08:00
|
|
|
|
NiuData curStep = GameManager.Instance._DataNiuHandler.CurNiuHandler.Value;
|
|
|
|
|
|
CameraSetNearTR(curStep);
|
2025-01-02 12:15:45 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
_defaultCameraTRTog.isOn = _nearCameraTRTog.isOn = false;
|
|
|
|
|
|
|
|
|
|
|
|
InitStepSecondMenuDataUI(dataTemp);
|
|
|
|
|
|
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.OnValueChanged += OnValueChanged;
|
|
|
|
|
|
}
|
2025-01-02 16:24:37 +08:00
|
|
|
|
|
2025-01-02 19:36:17 +08:00
|
|
|
|
private void Update()
|
2025-01-02 16:24:37 +08:00
|
|
|
|
{
|
2025-01-02 19:36:17 +08:00
|
|
|
|
if(Input.GetKey(KeyCode.Z))
|
2025-01-02 16:24:37 +08:00
|
|
|
|
{
|
|
|
|
|
|
if (kinematic == null || characterCamera == null) return;
|
|
|
|
|
|
Vector3 pos = kinematic.transform.position;
|
|
|
|
|
|
float rotY = kinematic.transform.rotation.eulerAngles.y;
|
|
|
|
|
|
Vector3 rot = new Vector3(characterCamera.transform.rotation.eulerAngles.x, rotY, 0);
|
|
|
|
|
|
int index = GameManager.Instance._DataNiuHandler.CurNiuHandler.Value.id;
|
2025-01-02 19:36:17 +08:00
|
|
|
|
string cameraTRInfo = string.Format("{0}_{1}_{2}|{3}_{4}_{5}", pos.x, pos.y, pos.z, rot.x, rot.y, rot.z);
|
|
|
|
|
|
GetWedage("TempReadCameraPos_N").GetComponent<InputField>().text = cameraTRInfo;
|
|
|
|
|
|
}
|
2025-01-02 16:24:37 +08:00
|
|
|
|
}
|
2025-01-02 19:36:17 +08:00
|
|
|
|
|
2025-01-02 12:15:45 +08:00
|
|
|
|
protected override void OnDestroy()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.OnDestroy();
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.OnValueChanged -= OnValueChanged;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="partsInfo">[id,TaskName,ThreeTaskName,TaskType]</param>
|
|
|
|
|
|
private void InitStepSecondMenuDataUI(List<string[]> partsInfo)
|
|
|
|
|
|
{
|
|
|
|
|
|
string bigStep = "";
|
|
|
|
|
|
int bigStepIndex = 0;
|
|
|
|
|
|
float extensionTxt = 0;
|
|
|
|
|
|
RectTransform smallParent = null;
|
|
|
|
|
|
RectTransform stepBigRect = null;
|
|
|
|
|
|
foreach (string[] item in partsInfo)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (item[3].Equals(ConstCtrl.TASKTYPE_Tran)
|
|
|
|
|
|
|| item[3].Equals(ConstCtrl.TASKTYPE_Finish)
|
|
|
|
|
|
|| item[3].Equals(ConstCtrl.TASKTYPE_VideoAuto)) continue;
|
|
|
|
|
|
if (!item[1].Equals(bigStep))
|
|
|
|
|
|
{
|
|
|
|
|
|
bigStepIndex++;
|
|
|
|
|
|
GameObject stepBigGeo = Instantiate(_stepBigItemPrefab, _stepContent);
|
|
|
|
|
|
stepBigRect = stepBigGeo.GetComponent<RectTransform>();
|
|
|
|
|
|
smallParent = stepBigGeo.transform.Find("StepSmallParent").GetComponent<RectTransform>();
|
|
|
|
|
|
stepBigGeo.name = /*curShowGeo + "_" + */item[1];
|
|
|
|
|
|
stepBigGeo.transform.Find("IsSelectBG/TextDetail").GetComponent<Text>().text = item[1];
|
|
|
|
|
|
_stepBigs.Add(stepBigGeo);
|
|
|
|
|
|
Button bigBtn = stepBigGeo.transform.Find("BigBtnTri").GetComponent<Button>();
|
|
|
|
|
|
#if !UNITY_EDITOR
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
bigBtn.interactable = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
bigBtn.onClick.AddListener(() =>
|
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裬ֱ<E8A3AC><D6B1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>һ<EFBFBD><D2BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
Toggle smallStepTog = bigBtn.transform.parent.Find("StepSmallParent").GetChild(1).GetComponent<Toggle>();
|
|
|
|
|
|
smallStepTog.isOn = true;
|
|
|
|
|
|
SelectBigStepGeo(bigBtn.transform.parent);
|
|
|
|
|
|
});
|
|
|
|
|
|
Toggle bigOpenClose = stepBigGeo.transform.Find("OpenCloseBtn").GetComponent<Toggle>();
|
|
|
|
|
|
#if !UNITY_EDITOR
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
bigOpenClose.interactable = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
bigOpenClose.GetComponent<Toggle>().onValueChanged.AddListener((isOn) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
OnClickBigStep(bigOpenClose.transform.parent.GetComponent<RectTransform>(), !isOn);
|
|
|
|
|
|
});
|
|
|
|
|
|
bigOpenClose.isOn = _stepBigs.Count == 1;
|
|
|
|
|
|
bigStep = item[1];
|
|
|
|
|
|
stepBigGeo.SetActive(true);
|
|
|
|
|
|
extensionTxt = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (_stepChildrens.Count > 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
string previousStepThreeTaskName = _stepChildrens[_stepChildrens.Count - 1].transform.Find("TextContent").GetComponent<Text>().text;
|
|
|
|
|
|
if (item[2] == previousStepThreeTaskName) continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
GameObject stepSmallGeo = Instantiate(_stepSmallItemPrefab, smallParent.transform);
|
|
|
|
|
|
stepSmallGeo.name = item[0];
|
|
|
|
|
|
|
|
|
|
|
|
string contentStr = item[2];
|
|
|
|
|
|
stepSmallGeo.transform.Find("TextContent").GetComponent<Text>().text = contentStr;
|
|
|
|
|
|
|
|
|
|
|
|
Toggle smallTog = stepSmallGeo.GetComponent<Toggle>();
|
|
|
|
|
|
#if !UNITY_EDITOR
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
smallTog.interactable = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
smallTog.group = stepSmallGeo.transform.parent.GetComponent<ToggleGroup>();
|
|
|
|
|
|
smallTog.onValueChanged.AddListener((isOn) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
List<NiuData> tempData = GameManager.Instance._DataNiuHandler.NiuStepTypeDic[GameManager.Instance._CurModelType];
|
|
|
|
|
|
for (int i = 0; i < tempData.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (tempData[i].id.ToString().Equals(smallTog.transform.name))
|
|
|
|
|
|
{
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = tempData[i];
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
RectTransform stepSmallRectTran = stepSmallGeo.GetComponent<RectTransform>();
|
|
|
|
|
|
int smallNumber = smallParent.childCount - 2;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>
|
|
|
|
|
|
stepSmallRectTran.anchoredPosition = new Vector2(stepSmallRectTran.anchoredPosition.x, -(_smallItemSizeY + _smallItemIntervalY) * smallNumber - extensionTxt);
|
|
|
|
|
|
//if (CG.UTility.UtilitiesMng.GetTransCharNum(contentStr) > 25)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// extensionTxt += _smallItemSizeY;
|
|
|
|
|
|
// stepSmallRectTran.sizeDelta = new Vector2(stepSmallRectTran.sizeDelta.x, _smallItemSizeY + _smallItemSizeY);
|
|
|
|
|
|
//}
|
|
|
|
|
|
stepBigRect.sizeDelta = new Vector2(stepBigRect.sizeDelta.x, -_smallParentInitPosY - _smallItemIntervalY + _smallItemSizeY + (_smallItemSizeY + _smallItemIntervalY) * smallNumber + extensionTxt);
|
|
|
|
|
|
smallParent.sizeDelta = new Vector2(smallParent.sizeDelta.x, _smallItemSizeY + (_smallItemSizeY + _smallItemIntervalY) * smallNumber + extensionTxt);
|
|
|
|
|
|
stepSmallGeo.SetActive(true);
|
|
|
|
|
|
_stepChildrens.Add(stepSmallGeo);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnValueChanged(NiuData obj)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (obj.TaskName != GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue.TaskName)
|
|
|
|
|
|
{//ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>ͬ
|
|
|
|
|
|
NiuSceneMng._Instance.InitPlayAnmState(obj, GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue);
|
2025-01-03 08:42:56 +08:00
|
|
|
|
if (obj.TaskName == ConstCtrl.TaskName_ActualOperation
|
|
|
|
|
|
&& GameManager.Instance._CurModelType == ConstCtrl.ModuleName_CP)
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.UseToolsActive(false);
|
|
|
|
|
|
}
|
2025-01-02 12:15:45 +08:00
|
|
|
|
}
|
2025-01-02 14:13:47 +08:00
|
|
|
|
if(obj.ThreeTaskName != GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue.ThreeTaskName)
|
2025-01-02 12:15:45 +08:00
|
|
|
|
{//ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>ͬ
|
|
|
|
|
|
_defaultCameraTRTog.isOn = true;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ģʽ<C4A3>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>Ʒѡ<C6B7><D1A1>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
int geoShowID = 0;
|
|
|
|
|
|
foreach (NiuData item in GameManager.Instance._DataNiuHandler.NiuStepTypeDic[GameManager.Instance._CurModelType])
|
|
|
|
|
|
{
|
|
|
|
|
|
if (item.TaskType.Equals(ConstCtrl.TASKTYPE_ShowGeo))
|
|
|
|
|
|
{
|
|
|
|
|
|
geoShowID = item.id;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
NiuSceneMng._Instance.UseToolsActive(obj.id > geoShowID);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-03 12:00:33 +08:00
|
|
|
|
if (GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue.TaskType == ConstCtrl.TASKTYPE_Video)
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.ClosePanel("VideoShowPanel");
|
|
|
|
|
|
UI_Manage.Instance.ClosePanel("VideoShowNoCtrlPanel");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue.TaskType == ConstCtrl.TASKTYPE_ChoiceVideoQuestion)
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.ClosePanel("ThreeVideoChoicePrefab");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-02 12:15:45 +08:00
|
|
|
|
UpdateTaskType(obj);
|
|
|
|
|
|
|
|
|
|
|
|
UpdateSelectItem(obj);
|
|
|
|
|
|
|
|
|
|
|
|
WordExplain(obj);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>˴<EFBFBD><CBB4>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (!GameManager.Instance._IsTrain&&
|
|
|
|
|
|
obj.TaskType.Equals(ConstCtrl.TASKTYPE_ShowGeo))
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.ShowPanel("SelectToolsPanel", Type.GetType("ZXK.LouDiXvMuNiu.SelectToolsPanel"), UIGroup.Main);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.HidePanel("SelectToolsPanel");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>Ϣ
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
private void UpdateSelectItem(NiuData obj)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F>ҵ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
|
|
|
|
|
NiuData objLight = null;
|
|
|
|
|
|
List<NiuData> threeTasks = GameManager.Instance._DataNiuHandler.NiuStepTypeDic[GameManager.Instance._CurModelType];
|
|
|
|
|
|
for (int i = 0; i < threeTasks.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (threeTasks[i].ThreeTaskName == obj.ThreeTaskName)
|
|
|
|
|
|
{
|
|
|
|
|
|
objLight = threeTasks[i];
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯
|
|
|
|
|
|
Transform seleTran = null;
|
|
|
|
|
|
for (int i = 0; i < _stepChildrens.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
_stepChildrens[i].GetComponent<Toggle>().isOn = false;
|
|
|
|
|
|
_stepChildrens[i].transform.Find("TextContent").GetComponent<Text>().color = Color.white;
|
|
|
|
|
|
if (_stepChildrens[i].name.Equals(objLight.id.ToString()))
|
|
|
|
|
|
{
|
|
|
|
|
|
seleTran = _stepChildrens[i].transform;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Text nameTxt = seleTran.Find("TextContent").GetComponent<Text>();
|
|
|
|
|
|
nameTxt.color = Color.blue;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>Transform<72>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>仯
|
|
|
|
|
|
for (int i = 0; i < _stepBigs.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
_stepBigs[i].transform.Find("IsSelectBG/TextDetail").GetComponent<Text>().color = Color.white;
|
|
|
|
|
|
_stepBigs[i].transform.Find("IsSelectBG/TextDetail").GetComponent<Outline>().effectColor = new Color(Color.white.r, Color.white.g, Color.white.b, 0.2f);
|
|
|
|
|
|
_stepBigs[i].transform.Find("IsNoSelectLogo/IsSelectLogoLINE").gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
SelectBigStepGeo(seleTran.parent.parent);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ͽ<EFBFBD><CDBD>д<EFBFBD><D0B4><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
private void UpdateTaskType(NiuData obj)
|
|
|
|
|
|
{
|
2025-01-02 14:13:47 +08:00
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Anim))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (NiuSceneMng._Instance._CurSceneStep != obj)
|
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ǵ<EFBFBD><C7B5><EFBFBD>UI<55><49>ֱ<EFBFBD>ӽ<EFBFBD><D3BD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
|
NiuSceneMng._Instance.JumpTimeline(obj, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
List<GameObject> tempToolArray = NiuSceneMng._Instance.GetNeedClickTools(obj);
|
|
|
|
|
|
NiuSceneMng._Instance.OnlyShowBTGeo(tempToolArray.ToArray());
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(obj.Question))
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.GetNeedClickTools(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.AnswerSystemInStep(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_ChoiceVideoQuestion))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (NiuSceneMng._Instance._CurSceneStep != obj)
|
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ǵ<EFBFBD><C7B5><EFBFBD>UI<55><49>ֱ<EFBFBD>ӽ<EFBFBD><D3BD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
|
NiuSceneMng._Instance.JumpTimeline(obj, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
bool isExam = GameManager.Instance._StateContext.GetState().Name.Equals("ExamState");
|
|
|
|
|
|
string[] answers = obj.OptionsAll.Split("|");
|
|
|
|
|
|
if (answers.Length % 2 != 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
PopUpMng.ThreeVideoChoicePanel(obj.Question, answers, answers, NiuSceneMng._Instance.GetOptionIndex(obj.OptionRight), isExam, () =>
|
|
|
|
|
|
{
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = GameManager.Instance._DataNiuHandler.GetNextStep();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_ChoicePicQuestion))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (NiuSceneMng._Instance._CurSceneStep != obj)
|
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ǵ<EFBFBD><C7B5><EFBFBD>UI<55><49>ֱ<EFBFBD>ӽ<EFBFBD><D3BD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
|
NiuSceneMng._Instance.JumpTimeline(obj, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
NiuSceneMng._Instance.ChoiceImgInStep(obj.ModelBT.Split("|"));
|
|
|
|
|
|
}
|
2025-01-02 12:15:45 +08:00
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Video))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
List<GameObject> tempToolArray = NiuSceneMng._Instance.GetNeedClickTools(obj);
|
|
|
|
|
|
NiuSceneMng._Instance.OnlyShowBTGeo(tempToolArray.ToArray());
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
2025-01-03 08:42:56 +08:00
|
|
|
|
GameObject videoGeo = UI_Manage.Instance.ShowPanel("VideoShowNoCtrlPanel", Type.GetType("ZXK.LouDiXvMuNiu.VideoShowPanel"), UIGroup.Tip);
|
2025-01-02 12:15:45 +08:00
|
|
|
|
videoGeo.GetComponent<VideoShowPanel>().PlayVideoClip(obj.VideoPath, () =>
|
|
|
|
|
|
{
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = GameManager.Instance._DataNiuHandler.GetNextStep(obj.QNextNum);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_VideoAuto))
|
|
|
|
|
|
{
|
2025-01-03 08:42:56 +08:00
|
|
|
|
GameObject videoGeo = UI_Manage.Instance.ShowPanel("VideoShowNoCtrlPanel", Type.GetType("ZXK.LouDiXvMuNiu.VideoShowPanel"), UIGroup.Tip);
|
2025-01-02 12:15:45 +08:00
|
|
|
|
videoGeo.GetComponent<VideoShowPanel>().PlayVideoClip(obj.VideoPath, () =>
|
|
|
|
|
|
{
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = GameManager.Instance._DataNiuHandler.GetNextStep();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Tran))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.TimeTranInStep(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(obj.Question))
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.TimeTranInStep(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.AnswerSystemInStep(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_TranAnim))
|
|
|
|
|
|
{
|
|
|
|
|
|
NiuSceneMng._Instance.TimeTranAnmInStep(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Finish))
|
|
|
|
|
|
{
|
2025-01-02 19:54:22 +08:00
|
|
|
|
NiuSceneMng._Instance.TimelineContinue();
|
2025-01-02 12:15:45 +08:00
|
|
|
|
PopUpMng.PopAlert("<22><>ʾ", "<22><>ǰģ<C7B0><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "ȷ<><C8B7>", null);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裬<EFBFBD><E8A3AC><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="stepBigRect"></param>
|
|
|
|
|
|
private void OnClickBigStep(RectTransform stepBigRect,bool isClose)
|
|
|
|
|
|
{
|
|
|
|
|
|
RectTransform smallItemParent = stepBigRect.transform.Find("StepSmallParent").GetComponent<RectTransform>();
|
|
|
|
|
|
if (isClose)
|
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>״̬
|
|
|
|
|
|
//<2F>رն<D8B1><D5B6><EFBFBD>
|
|
|
|
|
|
//DOTween.Kill("OpenSequence");
|
|
|
|
|
|
Sequence closeSequence = DOTween.Sequence();
|
|
|
|
|
|
closeSequence.Append(stepBigRect.DOSizeDelta(new Vector2(stepBigRect.sizeDelta.x, -_smallParentInitPosY - _smallItemIntervalY), _openCloseAnmSpeed * smallItemParent.childCount));
|
|
|
|
|
|
closeSequence.Insert(0, stepBigRect.Find("OpenCloseBtn").DORotate(Vector3.forward * 0.0f, _openCloseAnmSpeed * smallItemParent.childCount));
|
|
|
|
|
|
closeSequence.Insert(0, smallItemParent.DOSizeDelta(new Vector2(smallItemParent.sizeDelta.x, 0), _openCloseAnmSpeed * smallItemParent.childCount));
|
|
|
|
|
|
for (int i = 0; i < smallItemParent.GetComponentsInChildren<Button>().Length; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
RectTransform item = smallItemParent.GetComponentsInChildren<Button>()[i].GetComponent<RectTransform>();
|
|
|
|
|
|
closeSequence.Insert(0, item.DOAnchorPosY(0, _openCloseAnmSpeed * (i + 1)));
|
|
|
|
|
|
}
|
|
|
|
|
|
closeSequence.Insert(0, smallItemParent.DOAnchorPosY(0, _openCloseAnmSpeed * smallItemParent.childCount)).OnComplete(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
smallItemParent.gameObject.SetActive(false);
|
|
|
|
|
|
}).SetId("CloseSequence");
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{//<2F><><EFBFBD>ںϲ<DABA>״̬
|
|
|
|
|
|
//չ<><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//DOTween.Kill("CloseSequence");
|
|
|
|
|
|
Sequence openSequence = DOTween.Sequence();
|
|
|
|
|
|
float smallItemParentSizeY = _smallItemSizeY + (_smallItemSizeY + _smallItemIntervalY) * (smallItemParent.childCount - 2);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>
|
|
|
|
|
|
openSequence.Append(stepBigRect.DOSizeDelta(new Vector2(stepBigRect.sizeDelta.x, -_smallParentInitPosY - _smallItemIntervalY + smallItemParentSizeY), _openCloseAnmSpeed * smallItemParent.childCount));
|
|
|
|
|
|
openSequence.Insert(0, stepBigRect.Find("OpenCloseBtn").DORotate(Vector3.forward * -90.0f, _openCloseAnmSpeed * smallItemParent.childCount));
|
|
|
|
|
|
openSequence.Insert(0, smallItemParent.DOSizeDelta(new Vector2(smallItemParent.sizeDelta.x, smallItemParentSizeY), _openCloseAnmSpeed * smallItemParent.childCount));
|
|
|
|
|
|
for (int i = 0; i < smallItemParent.GetComponentsInChildren<Button>().Length; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
RectTransform item = smallItemParent.GetComponentsInChildren<Button>()[i].GetComponent<RectTransform>();
|
|
|
|
|
|
openSequence.Insert(0, item.DOAnchorPosY(-(_smallItemSizeY + _smallItemIntervalY) * i, _openCloseAnmSpeed * (i + 1)));
|
|
|
|
|
|
}
|
|
|
|
|
|
openSequence.Insert(0, smallItemParent.DOAnchorPosY(_smallParentInitPosY, _openCloseAnmSpeed * smallItemParent.childCount)).OnStart(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
smallItemParent.gameObject.SetActive(true);
|
|
|
|
|
|
}).SetId("OpenSequence");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// ѡ<><D1A1><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="seleTran"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|
|
|
|
|
private void SelectBigStepGeo(Transform bigBtnTran)
|
|
|
|
|
|
{
|
|
|
|
|
|
Toggle bigOpenClose = bigBtnTran.Find("OpenCloseBtn").GetComponent<Toggle>();
|
|
|
|
|
|
bigOpenClose.isOn = true;
|
|
|
|
|
|
Transform itemTxt = bigBtnTran.Find("IsSelectBG/TextDetail");
|
|
|
|
|
|
itemTxt.GetComponent<Text>().color = Color.blue;
|
|
|
|
|
|
itemTxt.GetComponent<Outline>().effectColor = new Color(Color.blue.r, Color.blue.g, Color.blue.b, 0.2f);
|
|
|
|
|
|
bigBtnTran.Find("IsNoSelectLogo/IsSelectLogoLINE").gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void WordExplain(NiuData obj)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_WordExp))
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.ClosePanel("ShowToastUIPrefab");
|
2025-01-03 15:01:16 +08:00
|
|
|
|
imgIntroduceGeo.SetActive(false);
|
2025-01-02 12:15:45 +08:00
|
|
|
|
_introduceGeo.SetActive(true);
|
|
|
|
|
|
_trainExplainTxt.text = obj.ProcessDescription;
|
|
|
|
|
|
if (!string.IsNullOrEmpty(obj.SoundPath))
|
|
|
|
|
|
{
|
|
|
|
|
|
string audioPath = Application.streamingAssetsPath + "/Audios/NiuTips/" + obj.SoundPath + ".mp3";
|
|
|
|
|
|
CG.UTility.UtilitiesMng.LoadAudio(audioPath, (AudioClip clip) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (clip)
|
|
|
|
|
|
{
|
|
|
|
|
|
_trainExplainTxt.GetComponent<AudioSource>().clip = clip;
|
|
|
|
|
|
_trainExplainTxt.GetComponent<AudioSource>().Play();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
_nextBtn.GetComponent<RectTransform>().anchoredPosition = new Vector2(1.3f, 388.3f);
|
|
|
|
|
|
}
|
2025-01-03 15:01:16 +08:00
|
|
|
|
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_PicExp))
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.ClosePanel("ShowToastUIPrefab");
|
|
|
|
|
|
_introduceGeo.SetActive(false);
|
|
|
|
|
|
imgIntroduceGeo.SetActive(true);
|
2025-01-03 16:18:22 +08:00
|
|
|
|
|
|
|
|
|
|
_nextBtn.GetComponent<RectTransform>().anchoredPosition = new Vector2(1.3f, 309.0f);
|
2025-01-03 15:01:16 +08:00
|
|
|
|
}
|
2025-01-02 12:15:45 +08:00
|
|
|
|
else if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_ShowGeo))
|
|
|
|
|
|
{
|
2025-01-03 15:01:16 +08:00
|
|
|
|
imgIntroduceGeo.SetActive(false);
|
2025-01-02 12:15:45 +08:00
|
|
|
|
_introduceGeo.SetActive(false);
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
PopUpMng.PopAddAudToast(obj.ProcessDescription, obj.SoundPath, -1, UIGroup.Tip);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
PopUpMng.PopToast(obj.ExamTip, -1, UIGroup.Tip);
|
|
|
|
|
|
}
|
|
|
|
|
|
_nextBtn.GetComponent<RectTransform>().anchoredPosition = new Vector2(890.0f, 966.0f);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Anim))
|
|
|
|
|
|
{
|
2025-01-03 15:01:16 +08:00
|
|
|
|
imgIntroduceGeo.SetActive(false);
|
2025-01-02 12:15:45 +08:00
|
|
|
|
_introduceGeo.SetActive(false);
|
|
|
|
|
|
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(obj.ProcessDescription))
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.HidePanel("ShowToastUIPrefab");
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
PopUpMng.PopAddAudToast(obj.ProcessDescription, obj.SoundPath, -1, UIGroup.Tip);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(obj.ExamTip))
|
|
|
|
|
|
{
|
|
|
|
|
|
UI_Manage.Instance.HidePanel("ShowToastUIPrefab");
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
PopUpMng.PopToast(obj.ExamTip, -1, UIGroup.Tip);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
_nextBtn.GetComponent<RectTransform>().anchoredPosition = new Vector2(890.0f, 966.0f);
|
|
|
|
|
|
}
|
|
|
|
|
|
_nextBtn.onClick.RemoveAllListeners();
|
|
|
|
|
|
_nextBtn.onClick.AddListener(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (NiuSceneMng._Instance._IsPlayAnm) return;
|
2025-01-03 12:00:33 +08:00
|
|
|
|
NiuData nextStep= GameManager.Instance._DataNiuHandler.GetNextStep();
|
|
|
|
|
|
if (nextStep.TaskType == ConstCtrl.TASKTYPE_Tran)
|
|
|
|
|
|
{
|
|
|
|
|
|
nextStep = GameManager.Instance._DataNiuHandler.GetNextStep(nextStep);
|
|
|
|
|
|
}
|
|
|
|
|
|
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = nextStep;
|
2025-01-02 12:15:45 +08:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť<EFBFBD><C5A5>Ϊfalse
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void SetCameraTRTogFalse()
|
|
|
|
|
|
{
|
|
|
|
|
|
_defaultCameraTRTog.isOn = _nearCameraTRTog.isOn = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
|
|
|
|
|
|
/// </summary>
|
2025-01-02 16:24:37 +08:00
|
|
|
|
private void CameraSetNearTR(NiuData obj)
|
2025-01-02 12:15:45 +08:00
|
|
|
|
{
|
2025-01-02 19:36:17 +08:00
|
|
|
|
if (string.IsNullOrEmpty(obj.CameraNearTR)) return;
|
2025-01-02 16:24:37 +08:00
|
|
|
|
try
|
|
|
|
|
|
{
|
2025-01-02 19:36:17 +08:00
|
|
|
|
string[] cameraDefaultTR = obj.CameraNearTR.Split("|");
|
2025-01-02 16:24:37 +08:00
|
|
|
|
string[] camDefPosStr = cameraDefaultTR[0].Split("_");
|
|
|
|
|
|
string[] camDefRotStr = cameraDefaultTR[1].Split("_");
|
|
|
|
|
|
Vector3 cameraDefPos = new Vector3(float.Parse(camDefPosStr[0]), float.Parse(camDefPosStr[1]), float.Parse(camDefPosStr[2]));
|
|
|
|
|
|
Vector3 cameraDefRot = new Vector3(float.Parse(camDefRotStr[0]), float.Parse(camDefRotStr[1]), float.Parse(camDefRotStr[2]));
|
2025-01-02 12:15:45 +08:00
|
|
|
|
|
2025-01-02 16:24:37 +08:00
|
|
|
|
ChangeCameraPos(cameraDefPos, cameraDefRot);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
WDebug.LogError($"<22><><EFBFBD>ݳ<EFBFBD><DDB3>ִ<EFBFBD><D6B4><EFBFBD>:{ex.Message}");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2025-01-02 12:15:45 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪĬ<CEAA><C4AC><EFBFBD>ӽ<EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
private void CameraSetDefaultTR(NiuData obj)
|
|
|
|
|
|
{
|
2025-01-02 19:36:17 +08:00
|
|
|
|
if (string.IsNullOrEmpty(obj.CameraDefaultTR)) return;
|
2025-01-02 12:15:45 +08:00
|
|
|
|
try
|
|
|
|
|
|
{
|
2025-01-02 19:36:17 +08:00
|
|
|
|
string[] cameraDefaultTR = obj.CameraDefaultTR.Split("|");
|
2025-01-02 12:15:45 +08:00
|
|
|
|
string[] camDefPosStr = cameraDefaultTR[0].Split("_");
|
|
|
|
|
|
string[] camDefRotStr = cameraDefaultTR[1].Split("_");
|
|
|
|
|
|
Vector3 cameraDefPos = new Vector3(float.Parse(camDefPosStr[0]), float.Parse(camDefPosStr[1]), float.Parse(camDefPosStr[2]));
|
|
|
|
|
|
Vector3 cameraDefRot = new Vector3(float.Parse(camDefRotStr[0]), float.Parse(camDefRotStr[1]), float.Parse(camDefRotStr[2]));
|
|
|
|
|
|
|
|
|
|
|
|
ChangeCameraPos(cameraDefPos, cameraDefRot);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
WDebug.LogError($"<22><><EFBFBD>ݳ<EFBFBD><DDB3>ִ<EFBFBD><D6B4><EFBFBD>:{ex.Message}");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="pos"></param>
|
|
|
|
|
|
/// <param name="rot"></param>
|
|
|
|
|
|
private void ChangeCameraPos(Vector3 pos, Vector3 rot)
|
|
|
|
|
|
{
|
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>λ<EFBFBD><CEBB>
|
|
|
|
|
|
kinematic.SetPositionAndRotation(pos, Quaternion.Euler(0, rot.y, 0));///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>λ<EFBFBD><CEBB>
|
|
|
|
|
|
characterCamera.transform.rotation = Quaternion.Euler(rot.x, rot.y, 0);
|
|
|
|
|
|
characterCamera.transform.position = characterCamera.pos.transform.position;
|
2025-01-03 14:05:50 +08:00
|
|
|
|
characterCamera.ResetTR(rot);
|
2025-01-02 19:36:17 +08:00
|
|
|
|
}
|
2025-01-02 12:15:45 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|