using Assets.Scenes.Ride.Scripts; using Assets.Scenes.Ride.Scripts.Model; using Assets.Scripts; using Assets.Scripts.Devices.Ant; using Assets.Scripts.Scenes; using Assets.Scripts.UI.Prefab.Device; using DG.Tweening; using Mapbox.Examples; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class MainController : BaseScene { [SerializeField]GameObject root; private Text Version; protected override void Awake() { base.Awake(); Debug.Log("执行25"); Version = this.transform.Find("GameObject").Find("Version").GetComponent(); Version.text = "V"+App.AppVersion; DeviceCache.Init(PFConstants.DeviceCacheFolder); Loom.Initialize(); msg = transform.Find("GameObject/Message").GetComponent(); InitialMessage(); #if UNITY_ANDROID || UNITY_IOS transform.GetComponent().referenceResolution = new Vector2(844, 390); //transform.Find("Panel").GetComponent().sizeDelta = new Vector2(844, 390); var rectTransform = transform.Find("Panel").GetComponent(); rectTransform.anchorMin = Vector2.zero; rectTransform.anchorMax = Vector2.one; rectTransform.offsetMin = Vector2.zero; rectTransform.offsetMax = Vector2.zero; transform.Find("GameObject/Version").gameObject.SetActive(false); //var rect1 = transform.Find("GameObject").GetComponent(); //rect1.anchorMin = Vector2.zero; //rect1.anchorMax = Vector2.one; //rect1.offsetMin = Vector2.zero; //rect1.offsetMax = Vector2.zero; //transform.Find("ModalPanel").GetComponent().sizeDelta = new Vector2(844, 390); #else var modalRect = transform.Find("ModalPanel").GetComponent(); modalRect.anchorMin = new Vector2(0.5f, 0.5f); modalRect.anchorMax = new Vector2(0.5f, 0.5f); modalRect.offsetMin = Vector2.zero; modalRect.offsetMax = Vector2.zero; modalRect.sizeDelta = new Vector2(1600, 900); App.MainDeviceAdapter.StartScan(); #endif EventQueueSystem.AddListener(LinkedMessageHandler); App.isHomeChanged -= OnIsHomeChanged; App.isHomeChanged += OnIsHomeChanged; } #region 显示消息有关 //切换页面后 private void OnIsHomeChanged(object sender, EventArgs e) { //DOTween.KillAll(); FinishMessage(sender); } List msgs; Vector3 msgLocation; int msgIndex = 0; CanvasGroup rightMessage; private void InitialMessage() { #if UNITY_STANDALONE_WIN msgLocation = 1 * msg.transform.localPosition; var go = transform.Find("GameObject"); rightMessage = Instantiate(msg); DestroyImmediate(transform.Find("GameObject/Message").gameObject); rightMessage.transform.SetParent(go); rightMessage.transform.localScale = Vector3.one; rightMessage.transform.localPosition = 1 * msgLocation; rightMessage.alpha = 0; msgs = new List { rightMessage }; for (int i = 0; i < 4; i++) { var tmpm = Instantiate(rightMessage); tmpm.transform.SetParent(rightMessage.transform.parent); tmpm.transform.localPosition = 1 * msgLocation; tmpm.transform.localScale = Vector3.one; tmpm.alpha = 0; msgs.Add(tmpm); } #else msgLocation = new Vector3(168, 37-46, 0); var go = transform.Find("GameObject"); go.GetComponent().anchorMin = Vector2.zero; go.GetComponent().anchorMax = Vector2.one; go.GetComponent().offsetMax = Vector2.zero; go.GetComponent().offsetMin = Vector2.zero; DestroyImmediate(transform.Find("GameObject/Message").gameObject); DestroyImmediate(transform.Find("GameObject/MessageRight").gameObject); var m = Resources.Load("UI/Prefab/NewRoute/Mobile/Message"); rightMessage = Instantiate(m).GetComponent(); rightMessage.transform.SetParent(go); rightMessage.transform.localScale = Vector3.one; rightMessage.transform.localPosition = 1 * msgLocation; rightMessage.alpha = 0; msgs = new List { rightMessage }; for (int i = 0; i < 4; i++) { var tmpm = Instantiate(rightMessage); tmpm.transform.SetParent(rightMessage.transform.parent); tmpm.transform.localPosition = 1 * msgLocation; tmpm.transform.localScale = Vector3.one; tmpm.alpha = 0; msgs.Add(tmpm); } Debug.Log(rightMessage.GetComponent().localPosition); //rightMessage.transform.SetParent(transform.Find("GameObject")); #endif } private void LinkedMessageHandler(LinkedMessageEvent e) { //msg.transform.Find("Content") emptyt = 0; //#if UNITY_STANDALONE_WIN // Debug.Log(e.content); // if (App.currentPageIsHome) // { // DoMessage(e); // } // else // { // DoMessageRight(e); // } //#else // if (App.currentPageIsHome) // { // DoMessage6(e); // } //#endif if (App.currentPageIsHome) { DoMessage6(e); } } private void DoMessageRight(LinkedMessageEvent e) { SetMessage(rightMessage, e); rightMessage.DOFade(1, 0.5f).onComplete = () => Invoke("fade0", 0.8f); } private void DoMessage(LinkedMessageEvent e) { var selectIndex = msgIndex % 3; var m = msgs[selectIndex]; if (msgIndex >= 3) // { //msgIndex = 0; m.DOFade(0, 0.5f).onComplete = ()=> { SetMessage(m, e); m.transform.localPosition = new Vector3(msgLocation.x, msgLocation.y - 54 * 2, msgLocation.z); m.DOFade(1, 0.5f); foreach (var item in msgs.Where((x, i) => i != selectIndex)) { item.transform.DOLocalMoveY(item.transform.localPosition.y + 54, 0.5f); } }; } else { SetMessage(m, e); m.transform.localPosition = new Vector3(msgLocation.x, msgLocation.y - 54 * (msgIndex % 3), msgLocation.z); m.DOFade(1, 0.5f); } msgIndex++; } #if UNITY_STANDALONE_WIN float moveOffset = 46; #else float moveOffset = 38; #endif private void DoMessage6(LinkedMessageEvent e) { var selectIndex = msgIndex % 5; var m = msgs[selectIndex]; if (msgIndex >= 5) // { //msgIndex = 0; Sequence se = DOTween.Sequence(); //m.transform.DOLocalMoveY(m.transform.localPosition.y - 38, 0.5f); foreach (var item in msgs) { se.Join(item.transform.DOLocalMoveY(item.transform.localPosition.y - moveOffset, 0.5f)); } se.Join(m.DOFade(0, 0.5f)); se.Play().onComplete = () => { SetMessage(m, e); m.transform.localPosition = 1 * msgLocation; m.DOFade(1, 0.5f); }; } else { Debug.Log(191); SetMessage(m, e); Sequence se = DOTween.Sequence(); for (int i = 0; i < msgIndex; i++) { var rect = msgs[i].GetComponent(); se.Join(rect.DOLocalMoveY(rect.localPosition.y - moveOffset, 0.5f)); } se.Join(m.DOFade(1, 0.5f)); se.Play(); } m.transform.SetAsLastSibling(); msgIndex++; } void FinishMessage(object sender) { if (!(bool)sender) { //FinishMessage6(); //DOTween.CompleteAll(true); DOTween.CompleteAll(true); transform.Find("GameObject").gameObject.SetActive(false); } else { transform.Find("GameObject").gameObject.SetActive(true); } //#if UNITY_STANDALONE_WIN // if ((bool)sender) // { // FinishMessageRight(); // } // else // { // FinishMessageLeft(); // } //#else //#endif } void FinishMessageLeft() { //#if UNITY_STANDALONE_WIN // msgIndex = 0; // if (msgs != null) // { // foreach (var item in msgs) // { // item.DOFade(0, 0.3f); // } // } //#endif } void FinishMessageRight() { msgIndex = 0; rightMessage.DOFade(0, 0.3f); } void FinishMessage6() { msgIndex = 0; foreach (var m in msgs) { m.alpha = 0; m.GetComponent().localPosition = 1 * msgLocation; } } private void SetMessage(CanvasGroup m,LinkedMessageEvent e) { m.GetComponent