123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using VRTK;
- public class OperationPanelForVR : MonoBehaviour
- {
- private Transform cameraEyeTF;
- private OperationCurvedUI operationCurvedUI;
- private Coroutine coroutine;
- private float waitTime = 3f;
- private string courseName;
- private AudioSource audioSource;
- private StepListProxy m_StepListProxy;
- [SerializeField]
- private bool m_IsLoadData = true;
- public Transform CameraEyeTF
- {
- get
- {
- if (cameraEyeTF == null)
- {
- cameraEyeTF = VRTK_DeviceFinder.HeadsetCamera();
- }
- return cameraEyeTF;
- }
- }
- private void Awake()
- {
- audioSource = FindObjectOfType<AudioSource>();
- if (audioSource == null)
- {
- GameObject gameObject = new GameObject("AudioSource");
- audioSource = gameObject.AddComponent<AudioSource>();
- }
- }
- /// <summary>
- /// 获取检修的所有步骤信息
- /// </summary>
- /// <param name="_courseName"></param>
- public void GetCourseStepMsg(string courseTitle)
- {
- if (m_IsLoadData)
- {
- courseName = courseTitle;
- m_StepListProxy = DAL.Instance.Get<StepListProxy>();
- m_StepListProxy.ReadStepMsgInfoFromTable(courseName);
- }
- }
- /// <summary>
- /// 根据传进来的步骤ID展示当前步骤信息、音频等
- /// </summary>
- /// <param name="stepID"></param>
- public void OperationPanelByStepID(int stepID)
- {
- if (!m_IsLoadData) return;
- OperationStepDataInfo tmp_OperationStepDataInfo = m_StepListProxy.GetOperationStepDataInfoById(stepID);
- if (tmp_OperationStepDataInfo != null)
- {
- //步骤信息
- if (!string.IsNullOrEmpty(tmp_OperationStepDataInfo.stepName))
- {
- if (OperateSetting.Instance.m_CurrentOperationMode == OperationMode.Practice)
- {
- if (CameraEyeTF && operationCurvedUI == null)
- {
- GameObject perfab = Resources.Load<GameObject>("UI/CurvedUIOpTip");
- GameObject curvedUIGO = Instantiate(perfab, CameraEyeTF);
- operationCurvedUI = curvedUIGO.GetComponent<OperationCurvedUI>();
- }
- operationCurvedUI.gameObject.SetActive(true);
- operationCurvedUI.SetTipText(tmp_OperationStepDataInfo.stepName);
- if (coroutine != null)
- {
- StopCoroutine(coroutine);
- }
- coroutine = StartCoroutine(WaitTime());
- }
- // 音频
- if (!string.IsNullOrEmpty(tmp_OperationStepDataInfo.audioClipName))
- {
- StartCoroutine(AudioHelper.LoadAudioClip(courseName, tmp_OperationStepDataInfo.audioClipName, AudioType.MPEG, LoadAudioCallBack));
- }
- else
- {
- audioSource.Stop();
- }
- }
- }
- }
- private IEnumerator WaitTime()
- {
- yield return new WaitForSeconds(waitTime);
- operationCurvedUI.gameObject.SetActive(false);
- }
- /// <summary>
- /// 加载音频回调
- /// </summary>
- /// <param name="obj"></param>
- private void LoadAudioCallBack(AudioClip obj)
- {
- audioSource.clip = obj;
- audioSource.Play();
- }
- }
|