| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using QFramework;
- using UnityEngine.Playables;
- using Sirenix.OdinInspector;
- using UnityEngine.UI;
- public class PrincipleGameLanuch_ExtraDirector : MonoBehaviour
- {
- public Button m_CloseBtn;
- public List<PrincipleInfo_Extra> m_PrincipleInfos;
- public PlayableDirector LastPlayableDirector;
- [LabelText("单个直接播放(在只有一个的情况下使用)")]
- public bool singlePlaye;
- private void Start()
- {
- ResKit.Init();
- foreach (var principleInfo in m_PrincipleInfos)
- {
- if (principleInfo.btn != null)
- {
- principleInfo.btn.onClick.AddListener(() => OnBtnClick(principleInfo));
- }
- }
- if (singlePlaye)
- {
- OnBtnClick(m_PrincipleInfos[0]);
- }
- if (m_CloseBtn != null)
- {
- m_CloseBtn.onClick.AddListener(() => Application.Quit());
- }
- }
- private void OnBtnClick(PrincipleInfo_Extra principleInfo)
- {
- StartCoroutine(WaitOneFrame(principleInfo));
- }
- IEnumerator WaitOneFrame(PrincipleInfo_Extra principleInfo)
- {
- if (LastPlayableDirector != null)
- {
- // 停止播放
- LastPlayableDirector.Pause();
- // 重置时间到0
- LastPlayableDirector.time = 0f;
- // 重新播放
- LastPlayableDirector.Play();
- }
- yield return new WaitForEndOfFrame();
- LastPlayableDirector.Stop();
- string tmpName = "原理/" + principleInfo.subTitleName;
- UIKit.OpenPanel<SubTitlesPanel>(new SubTitlesPanelData() { m_SubTitleName = tmpName });
- LastPlayableDirector = principleInfo.playableDirector;
- principleInfo.playableDirector.Play();
- }
- }
- [System.Serializable]
- public class PrincipleInfo_Extra
- {
- [LabelText("字幕名称")]
- public string subTitleName;
- [LabelText("绑定按钮")]
- public Button btn;
- [LabelText("Director")]
- public PlayableDirector playableDirector;
- }
|