126 lines
4.4 KiB
C#

using System.Collections.Generic;
using AScroller;
using Cysharp.Threading.Tasks;
using GameLogic.Project;
using UnityEngine;
using UnityEngine.UI;
using TEngine;
using Your.Namespace.Here.UniqueStringHereToAvoidNamespaceConflicts.Lists;
namespace GameLogic
{
[Window(UILayer.UI)]
class UIWindTraceLibrary : UIWindow
{
#region
private Button m_btnreturn;
private Button m_btnHome;
private Button m_btnAll;
private Button m_btntraceSaveLocalImage;
private Button m_btnDirectShow;
private UIARTrackScrollView m_trackScrollerView;
private ProjectToSceneSavedData _currentProjectToSceneSavedData;
protected override void ScriptGenerator()
{
m_trackScrollerView = FindChildComponent<UIARTrackScrollView>("BottomGroup/m_tfARTrackScrollView");
m_btnreturn = FindChildComponent<Button>("TopGroup/m_btnreturn");
m_btnHome = FindChildComponent<Button>("TopGroup/m_btnHome");
m_btnAll = FindChildComponent<Button>("TopGroup/m_btnAll");
m_btntraceSaveLocalImage = FindChildComponent<Button>("BottomGroup/m_btntraceSaveLocalImage");
m_btnDirectShow = FindChildComponent<Button>("BottomGroup/m_btnDirectShow");
m_btnreturn.onClick.AddListener(UniTask.UnityAction(OnClickreturnBtn));
m_btnHome.onClick.AddListener(UniTask.UnityAction(OnClickHomeBtn));
m_btnAll.onClick.AddListener(UniTask.UnityAction(OnClickAllBtn));
m_btntraceSaveLocalImage.onClick.AddListener(UniTask.UnityAction(OnClicktraceSaveLocalImageBtn));
m_btnDirectShow.onClick.AddListener(UniTask.UnityAction(OnClickDirectShowBtn));
}
#endregion
#region
private async UniTaskVoid OnClicktraceSaveLocalImageBtn()
{
Log.Info(m_trackScrollerView.GetCurrentModel().m_data._key);
MobileGalleryPermissionUtility.SaveImageToGallery(m_trackScrollerView.GetCurrentModel().m_data._key,m_trackScrollerView.GetCurrentModel().m_data._texture);
await UniTask.Yield();
}
private async UniTaskVoid OnClickDirectShowBtn()
{
await UniTask.Yield();
}
private async UniTaskVoid OnClicktraceSaveImageLibraryBtn()
{
await UniTask.Yield();
}
private async UniTaskVoid OnClickreturnBtn()
{
await UniTask.Yield();
GameModule.UI.CloseUI<UIWindTraceLibrary>();
if (_currentProjectToSceneSavedData != null)
{
GameModule.UI.ShowUI<UIWindARTrace>();
GameEvent.Send<ProjectToSceneSavedData>(UIProjectEventDefined.SettingProject,
_currentProjectToSceneSavedData);
}
}
private async UniTaskVoid OnClickHomeBtn()
{
await UniTask.Yield();
}
private async UniTaskVoid OnClickAllBtn()
{
await UniTask.Yield();
}
#endregion
private void SetUpComponentByData(ProjectData projectData)
{
var arTrackManager = ARTrackManager.Instance;
if(arTrackManager == null) return;
m_trackScrollerView.SetUp(arTrackManager.m_trackImages);
}
protected override void RegisterEvent()
{
GameEvent.AddEventListener<ProjectToSceneSavedData>(UIProjectEventDefined.SettingProject, ConfigUserData);
// m_trackScrollerView.OnEndOfDrag.AddListener(OnEndOfDrag);
// m_trackScrollerView.OnScrollChange.AddListener(OnScrollChange);
base.RegisterEvent();
}
private void OnScrollChange()
{
}
private void OnEndOfDrag()
{
//var widget = m_widgetslist.Find(widget => widget.gameObject == m_trackScrollerView.SelectedElement());
//Log.Warning($"widget{widget.gameObject.name}");
}
private void ConfigUserData(ProjectToSceneSavedData data)
{
_currentProjectToSceneSavedData = data;
SetUpComponentByData(_currentProjectToSceneSavedData._projectData);
}
protected override void OnDestroy()
{
GameEvent.RemoveEventListener<ProjectToSceneSavedData>(UIProjectEventDefined.SettingProject,
ConfigUserData);
base.OnDestroy();
}
}
}