123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using System;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Video;
- using YooAsset;
- namespace GFGGame
- {
- public class UICGView : SingletonBase<UICGView>
- {
- private const float VideoWidth = 1920f;
- private const float VideoHeight = 1080f;
- private GameObject _ui;
- private AssetOperationHandle handle;
- private RawImage imgVideo;
- private Button btnFullScreen;
- private VideoPlayer videoPlayer;
- public void Show()
- {
- string path = ResPathUtil.GetUUIPrefabPath("UICG");
- handle = YooAssets.LoadAssetSync<GameObject>(path);
- _ui = handle.InstantiateSync(UGUIManager.Instance.desktop.transform);
- imgVideo = _ui.transform.Find("ImgVideo").GetComponent<RawImage>();
- Vector2 imgVideoSizeDelta = imgVideo.rectTransform.sizeDelta;
- imgVideoSizeDelta.x = Screen.width;
- imgVideoSizeDelta.y = (VideoHeight / VideoWidth) * imgVideoSizeDelta.x;
- imgVideo.rectTransform.sizeDelta = imgVideoSizeDelta;
-
- btnFullScreen = _ui.transform.Find("BtnFullScreen").GetComponent<Button>();
- RectTransform rectTransform = btnFullScreen.GetComponent<RectTransform>();
- Vector2 buttonSizeDelta = rectTransform.sizeDelta;
- Vector2 anchoredPosition = rectTransform.anchoredPosition;
- anchoredPosition.y = -imgVideoSizeDelta.y / 2 - buttonSizeDelta.y;
- rectTransform.anchoredPosition = anchoredPosition;
- btnFullScreen.onClick.AddListener(OnClickBtnFullScreen);
- videoPlayer = _ui.transform.Find("VideoPlayer").GetComponent<VideoPlayer>();
- videoPlayer.loopPointReached += OnVideoEnded;
- }
- private void OnVideoEnded(VideoPlayer source)
- {
- this.Hide();
- StoryController.ShowLevelView(100001001);
- }
- private void OnClickBtnFullScreen()
- {
- btnFullScreen.gameObject.SetActive(false);
- imgVideo.rectTransform.localRotation = Quaternion.Euler(0, 0, -90);
- Vector2 imgVideoSizeDelta = imgVideo.rectTransform.sizeDelta;
- imgVideoSizeDelta.y = Screen.width;
- imgVideoSizeDelta.x = (VideoWidth / VideoHeight) * imgVideoSizeDelta.y;
- imgVideo.rectTransform.sizeDelta = imgVideoSizeDelta;
- if(videoPlayer.time <= 3)
- {
- videoPlayer.Stop();
- videoPlayer.Play();
- }
- }
- public void Hide()
- {
- handle.Release();
- handle = null;
- GameObject.Destroy(_ui);
- _ui = null;
- }
- }
- }
|