loudixvmuniu/Assets/_Scripts/Application/UI/OperationStepPanel.cs
2025-01-08 11:09:54 +08:00

598 lines
29 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CG.Framework;
using CG.UTility;
using DG.Tweening;
using KinematicCharacterController;
using KinematicCharacterController.Examples;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
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;//每个子项大小
protected const float _smallItemIntervalY = 5.0f;//每个子项之间间隔
protected const float _smallParentInitPosY = -40.0f;//子项父物体初始位置
private const float _openCloseAnmSpeed = 0.01f;//开合动画播放速度控制
private GameObject _introduceGeo = null;
private GameObject imgIntroduceGeo = null;
private Text _trainExplainTxt = null;
private Button _nextBtn = null;
private Toggle _defaultCameraTRTog = null;
private Toggle _nearCameraTRTog = null;
#region
private Button _creatCameraTR = null;
#endregion
protected override void Awake()
{
base.Awake();
_stepContent = GetWedage("StepContent_N").transform;
_stepBigItemPrefab = GetWedage("StepBigItemPrefab_N");
_stepSmallItemPrefab = GetWedage("StepSmallItemPrefab_N");
_introduceGeo = GetWedage("introduce_N");
imgIntroduceGeo = GetWedage("imgIntroduce_N");
_trainExplainTxt = GetWedage("TrainExplain_N").GetComponent<Text>();
_nextBtn = GetWedage("NextBtn_N").GetComponent<Button>();
_defaultCameraTRTog = GetWedage("DefaultTR_N").GetComponent<Toggle>();
_nearCameraTRTog = GetWedage("NearTR_N").GetComponent<Toggle>();
_creatCameraTR = GetWedage("CreatCameraPosBtn_N").GetComponent<Button>();
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);
}
_defaultCameraTRTog.onValueChanged.AddListener((isOn) =>
{
if (isOn)
{
NiuData curStep = GameManager.Instance._DataNiuHandler.CurNiuHandler.Value;
NiuSceneMng._Instance.CameraSetDefaultTR(curStep);
}
});
_nearCameraTRTog.onValueChanged.AddListener((isOn) =>
{
if (isOn)
{
NiuData curStep = GameManager.Instance._DataNiuHandler.CurNiuHandler.Value;
NiuSceneMng._Instance.CameraSetNearTR(curStep);
}
});
_creatCameraTR.onClick.AddListener(() =>
{
string TRStr = GetWedage("TempReadCameraPos_N").GetComponent<InputField>().text;
string[] cameraTR = TRStr.Split("|");
string[] camPosStr = cameraTR[0].Split("_");
string[] camRotStr = cameraTR[1].Split("_");
Vector3 cameraPos = new Vector3(float.Parse(camPosStr[0]), float.Parse(camPosStr[1]), float.Parse(camPosStr[2]));
Vector3 cameraRot = new Vector3(float.Parse(camRotStr[0]), float.Parse(camRotStr[1]), float.Parse(camRotStr[2]));
NiuSceneMng._Instance.ChangeCameraPos(cameraPos, cameraRot);
});
_defaultCameraTRTog.isOn = true;
InitStepSecondMenuDataUI(dataTemp);
GameManager.Instance._DataNiuHandler.CurNiuHandler.OnValueChanged += OnValueChanged;
}
private void Update()
{
if (Input.GetKey(KeyCode.Z))
{
KinematicCharacterMotor kinematic = Camera.main.GetComponent<CameraControl>()._CameraCtrl.transform.GetComponent<KinematicCharacterMotor>();
ExampleCharacterCamera characterCamera = Camera.main.GetComponent<ExampleCharacterCamera>();
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;
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;
}
}
protected override void OnDestroy()
{
base.OnDestroy();
GameManager.Instance._DataNiuHandler.CurNiuHandler.OnValueChanged -= OnValueChanged;
}
/// <summary>
/// 实例化数据到流程栏(带有二级菜单功能)
/// </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 (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
{
bigBtn.interactable = false;
}
bigBtn.onClick.AddListener(() =>
{//点击大步骤,直接选择对应第一个小步骤
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 (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
{
bigOpenClose.interactable = false;
}
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 (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
{
smallTog.interactable = false;
}
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;//多减掉一个隐藏的预制体
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.ThreeTaskName != GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue.ThreeTaskName)
{//前后三级人物名字不同
NiuSceneMng._Instance.InitPlayAnmState(obj, GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue);
}
UodateCameraTRID(obj);
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");
}
UpdateTaskType(obj);
UpdateSelectItem(obj);
WordExplain(obj);
//此处判断是否显示工具箱
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>
/// 实时跟新选择选项对应的样式信息
/// </summary>
/// <param name="obj"></param>
private void UpdateSelectItem(NiuData obj)
{
//找到选项所在的三级子任务当中的第一项作为高亮选项
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;
}
}
//选项自身变化
Transform seleTran = null;
for (int i = 0; i < _stepChildrens.Count; i++)
{
if (_stepChildrens[i].name.Equals(objLight.id.ToString()))
{
seleTran = _stepChildrens[i].transform;
}
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
{
_stepChildrens[i].GetComponent<Toggle>().isOn = false;
_stepChildrens[i].transform.Find("TextContent").GetComponent<Text>().color = Color.white;
}
}
Text nameTxt = seleTran.Find("TextContent").GetComponent<Text>();
nameTxt.color = new Color(25 / 255.0f, 224 / 255.0f, 224 / 255.0f);
//根据子选项Transform找到大步骤选项变化
for (int i = 0; i < _stepBigs.Count; i++)
{
if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState")) break;
_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>
/// 根据任务不同类型进行处理每个步骤
/// </summary>
/// <param name="obj"></param>
private void UpdateTaskType(NiuData obj)
{
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Anim))
{
if (NiuSceneMng._Instance._CurSceneStep != obj)
{//区分是否是点击UI直接进行的步骤跳转
NiuSceneMng._Instance.JumpTimeline(obj, true);
}
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
{
NiuSceneMng._Instance.GetNeedClickTools(obj);
NiuSceneMng._Instance.OnlyShowBTGeo(NiuSceneMng._Instance._CurStepUseBtDic[true].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)
{//区分是否是点击UI直接进行的步骤跳转
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)
{//区分是否是点击UI直接进行的步骤跳转
NiuSceneMng._Instance.JumpTimeline(obj, true);
}
NiuSceneMng._Instance.ChoiceImgInStep(obj.ModelBT.Split("|"));
}
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_Video))
{
if (GameManager.Instance._StateContext.GetState().Name.Equals("TrainState"))
{
NiuSceneMng._Instance.GetNeedClickTools(obj);
NiuSceneMng._Instance.OnlyShowBTGeo(NiuSceneMng._Instance._CurStepUseBtDic[true].ToArray());
}
else if (GameManager.Instance._StateContext.GetState().Name.Equals("ExamState"))
{
GameObject videoGeo = UI_Manage.Instance.ShowPanel("VideoShowPanel", Type.GetType("ZXK.LouDiXvMuNiu.VideoShowPanel"), UIGroup.Tip);
videoGeo.GetComponent<VideoShowPanel>().PlayVideoClip(obj.VideoPath, () =>
{
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = GameManager.Instance._DataNiuHandler.GetNextStep(obj.QNextNum);
});
}
}
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_VideoAuto))
{
GameObject videoGeo = UI_Manage.Instance.ShowPanel("VideoShowNoCtrlPanel", Type.GetType("ZXK.LouDiXvMuNiu.VideoShowPanel"), UIGroup.Tip);
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))
{
NiuSceneMng._Instance.TimelineContinue();
PopUpMng.PopAlert("提示", "当前模块已完成", "确认", null);
}
}
private void UodateCameraTRID(NiuData obj)
{
if (string.IsNullOrEmpty(obj.CameraNearTR))
{
_nearCameraTRTog.gameObject.SetActive(false);
_nearCameraTRTog.isOn = false;
}
else
{
_nearCameraTRTog.gameObject.SetActive(true);
if (_nearCameraTRTog.isOn)
{
NiuSceneMng._Instance.CameraSetNearTR(obj);
}
}
NiuData perviousData = GameManager.Instance._DataNiuHandler.CurNiuHandler.PreviousValue;
string SceneTempStr = string.Format($"{ConstCtrl.TaskName_OperationPlan}+{ConstCtrl.ThreeTaskName_PeoplePlan}");
string perviousSceneStr= string.Format($"{perviousData.TaskName}+{perviousData.ThreeTaskName}");
string curSceneStr = string.Format($"{obj.TaskName}+{obj.ThreeTaskName}");
if (perviousSceneStr == SceneTempStr && curSceneStr != SceneTempStr
|| perviousSceneStr != SceneTempStr && curSceneStr == SceneTempStr)
{
NiuSceneMng._Instance.CameraSetDefaultTR(obj);
}
if(_defaultCameraTRTog.isOn)
{
NiuSceneMng._Instance.CameraSetDefaultTR(obj);
}
}
/// <summary>
/// 点击大步骤,控制大步骤展开合并
/// </summary>
/// <param name="stepBigRect"></param>
private void OnClickBigStep(RectTransform stepBigRect,bool isClose)
{
RectTransform smallItemParent = stepBigRect.transform.Find("StepSmallParent").GetComponent<RectTransform>();
if (isClose)
{//处于展开状态
//关闭动画
//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
{//处于合并状态
//展开动画
//DOTween.Kill("CloseSequence");
Sequence openSequence = DOTween.Sequence();
float smallItemParentSizeY = _smallItemSizeY + (_smallItemSizeY + _smallItemIntervalY) * (smallItemParent.childCount - 2);//多减掉一个隐藏的预制体
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>
/// 选择对应的大步骤
/// </summary>
/// <param name="seleTran">代表大步骤物体</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 = new Color(25 / 255.0f, 224 / 255.0f, 224 / 255.0f);
itemTxt.GetComponent<Outline>().effectColor = new Color(25 / 255.0f, 224 / 255.0f, 224 / 255.0f, 0.2f);
bigBtnTran.Find("IsNoSelectLogo/IsSelectLogoLINE").gameObject.SetActive(true);
}
/// <summary>
/// 文字说明界面
/// </summary>
private void WordExplain(NiuData obj)
{
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_WordExp))
{
UI_Manage.Instance.ClosePanel("ShowToastUIPrefab");
imgIntroduceGeo.SetActive(false);
_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);
}
if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_PicExp))
{
UI_Manage.Instance.ClosePanel("ShowToastUIPrefab");
_introduceGeo.SetActive(false);
imgIntroduceGeo.SetActive(true);
_nextBtn.GetComponent<RectTransform>().anchoredPosition = new Vector2(1.3f, 309.0f);
}
else if (obj.TaskType.Equals(ConstCtrl.TASKTYPE_ShowGeo))
{
imgIntroduceGeo.SetActive(false);
_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))
{
imgIntroduceGeo.SetActive(false);
_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;
NiuData nextStep= GameManager.Instance._DataNiuHandler.GetNextStep();
if (nextStep.TaskType == ConstCtrl.TASKTYPE_Tran)
{
nextStep = GameManager.Instance._DataNiuHandler.GetNextStep(nextStep);
}
GameManager.Instance._DataNiuHandler.CurNiuHandler.Value = nextStep;
});
}
/// <summary>
/// 手动摄像机则按钮变为false
/// </summary>
public void SetCameraTRTogFalse()
{
NiuSceneMng._Instance._isNearCameraTR = false;
_defaultCameraTRTog.isOn = _nearCameraTRTog.isOn = false;
}
}
}