Files
ZHGD_Web/Assets/Scripts/UI/AndPad/AndroidPadMainPage.cs
2025-07-13 23:16:20 +08:00

273 lines
7.9 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 DG.Tweening;
using RenderHeads.Media.AVProVideo;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
public class AndroidPadMainPage : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI m_DateText;
[SerializeField]
private TextMeshProUGUI m_TimeText;
[SerializeField]
private List<Toggle> m_Video1Toggle;
[SerializeField]
private Button m_LastScreenButton;
[SerializeField]
private Button m_NextScreenButton;
private int screenIndex;
[SerializeField]
private List<Toggle> cireToggles = new List<Toggle>();
[SerializeField]
private Button m_LastVideoButton0;
[SerializeField]
private Button m_NextVideoButton0;
[SerializeField]
private Button m_LastVideoButton1;
[SerializeField]
private Button m_NextVideoButton1;
private int videoIndex;
[SerializeField]
private GameObject m_CireVideoToggleItem;
private List<Toggle> cireVideoToggles = new List<Toggle>();
private Tween m_ScreenVideo;
[SerializeField]
private RectTransform m_ScreenContent;
private Tween m_VideoTween;
private RectTransform m_VideoContent;
private GameObject m_NowScreenObj;
[SerializeField]
private List<GameObject> VideoScreens = new List<GameObject>();
[SerializeField]
private Text m_VideoInfo;
[SerializeField]
private Button m_ResetButton;
public MediaPlayer m_VideoPlayer;
// Start is called before the first frame update
IEnumerator Start()
{
yield return new WaitForSeconds(2);
for (int i = 0; i < m_Video1Toggle.Count; i++)
{
int index = i;
m_Video1Toggle[index].onValueChanged.AddListener((b)=>
{
if (b)
{
m_ScreenVideo.Kill();
screenIndex = index;
cireToggles[index].isOn = true;
m_NowScreenObj = VideoScreens[index];
m_ScreenVideo = m_ScreenContent.DOAnchorPosY(616 * index,0.5f);
InitCireVideoItems();
}
});
}
m_LastScreenButton.onClick.AddListener(()=>
{
screenIndex--;
if(screenIndex <= 0)
{
screenIndex = 0;
}
m_Video1Toggle[screenIndex].isOn = false;
m_Video1Toggle[screenIndex].isOn = true;
});
m_NextScreenButton.onClick.AddListener(() =>
{
screenIndex++;
if (screenIndex >= cireToggles.Count)
{
screenIndex = (cireToggles.Count - 1);
}
m_Video1Toggle[screenIndex].isOn = false;
m_Video1Toggle[screenIndex].isOn = true;
});
m_LastVideoButton0.onClick.AddListener(() =>
{
videoIndex--;
if (videoIndex <= 0)
{
videoIndex = 0;
}
SendMessageToScreen(0);
cireVideoToggles[videoIndex].isOn = false;
cireVideoToggles[videoIndex].isOn = true;
});
m_NextVideoButton0.onClick.AddListener(() =>
{
videoIndex++;
if (videoIndex >= cireVideoToggles.Count)
{
videoIndex = (cireVideoToggles.Count - 1);
}
SendMessageToScreen(3);
cireVideoToggles[videoIndex].isOn = false;
cireVideoToggles[videoIndex].isOn = true;
});
m_LastVideoButton1.onClick.AddListener(() =>
{
videoIndex--;
if (videoIndex <= 0)
{
videoIndex = 0;
}
SendMessageToScreen(0);
cireVideoToggles[videoIndex].isOn = false;
cireVideoToggles[videoIndex].isOn = true;
});
m_NextVideoButton1.onClick.AddListener(() =>
{
videoIndex++;
if (videoIndex >= cireVideoToggles.Count)
{
videoIndex = (cireVideoToggles.Count - 1);
}
SendMessageToScreen(3);
cireVideoToggles[videoIndex].isOn = false;
cireVideoToggles[videoIndex].isOn = true;
});
//m_VideoSlider.onValueChanged.AddListener((v) =>
//{
// m_VideoNowTime.text = "00:00";
// m_VideoAllTime.text = "00:00";
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
//});
m_ResetButton.onClick.AddListener(OnResetVideo);
m_Video1Toggle[0].isOn = false;
m_Video1Toggle[0].isOn = true;
screenIndex = 0;
}
private void InitCireVideoItems()
{
for (int i = (cireVideoToggles.Count - 1); i >= 0; i--)
{
Destroy(cireVideoToggles[i].gameObject);
}
cireVideoToggles.Clear();
foreach (Transform item in m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0))
{
GameObject cireVideo = Instantiate(m_CireVideoToggleItem, m_CireVideoToggleItem.transform.parent);
cireVideo.SetActive(true);
cireVideoToggles.Add(cireVideo.GetComponent<Toggle>());
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
m_VideoTween.Kill();
m_VideoContent = m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0).GetComponent<RectTransform>();
for (int i = 0; i < cireVideoToggles.Count; i++)
{
int index = i;
cireVideoToggles[index].onValueChanged.AddListener((b) =>
{
m_VideoTween = m_VideoContent.DOAnchorPosX(-1086.806f * index, 0.5f);
m_VideoInfo.text = "<22><>Ļ" + (screenIndex + 1) + ":<3A><>Ƶ" + (videoIndex + 1);
InitVideoPlay(index);
});
}
m_VideoContent.anchoredPosition= Vector2.zero;
videoIndex = 0;
cireVideoToggles[0].isOn = false;
cireVideoToggles[0].isOn = true;
}
/// <summary>
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ƶģʽ
/// </summary>
private void InitVideoPlay(int index)
{
if (m_VideoPlayer == null)
return;
m_VideoPlayer.OpenMedia(new MediaPath(m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(index).GetComponent<VideoAvproPath>()._mediaReference, MediaPathType.RelativeToStreamingAssetsFolder),false);
m_VideoPlayer.Control.Seek(0);
m_VideoPlayer.Control.Stop();
Debug.Log(m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(index).GetComponent<VideoAvproPath>()._mediaReference);
}
// Update is called once per frame
void Update()
{
m_DateText.text = DateTime.Now.ToString("yyyy-MM-dd");
m_TimeText.text = DateTime.Now.ToString("HH:mm");
}
/// <summary>
/// <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD>ͣ
/// </summary>
public void OnPlayStopVideo(int index)
{
if(index == 0)
{
m_VideoPlayer.Control.Play();
SendMessageToScreen(1);
}
else
{
m_VideoPlayer.Control.Stop();
SendMessageToScreen(2);
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>
/// </summary>
private void OnResetVideo()
{
m_VideoPlayer.Control.Seek(0);
SendMessageToScreen(4);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// 0:<3A><>һ<EFBFBD><D2BB> 1:<3A><><EFBFBD><EFBFBD> 2:<3A><>ͣ 3:<3A><>һ<EFBFBD><D2BB> 4:<3A>ز<EFBFBD>
/// </summary>
private void SendMessageToScreen(int operationCode)
{
string operationCodeStr = "";
if(operationCode == 0)
{
operationCodeStr = "<22><>һ<EFBFBD><D2BB>";
}
else if(operationCode == 1)
{
operationCodeStr = "<22><><EFBFBD><EFBFBD>";
}
else if (operationCode == 2)
{
operationCodeStr = "<22><>ͣ";
}
else if (operationCode == 3)
{
operationCodeStr = "<22><>һ<EFBFBD><D2BB>";
}
else if (operationCode == 4)
{
operationCodeStr = "<22>ز<EFBFBD>";
}
Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ" + (screenIndex + 1) + "<22>ĵ<EFBFBD>" + (videoIndex + 1) + "<22><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>" + operationCodeStr);
}
}