using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Wizard; public class MyPageBanner : MyPageBannerBase { protected enum MoveSide { } [SerializeField] protected UICenterOnChild _uiCenterOnChild; [SerializeField] protected GameObject _pagerPrefab; [SerializeField] protected UIWrapContent _uiWrapContent; [SerializeField] protected GameObject _pagerBaseObject; [SerializeField] protected GameObject _buttonBase; protected bool _isAnimation; protected bool _isCanSlide; protected bool _isClickStart; protected Vector3 _touchPoint; protected int _bannerNo; protected List _pagerSpriteList; protected GameObject _centerObject; protected override IEnumerator CreateBannerImage() { _bannerList = new List(Data.MyPage.data._bannerList); if (!base.IsEnableBanner) { base.gameObject.SetActive(value: false); yield break; } yield return LoadBannerImage(); while (!base.gameObject.activeInHierarchy) { yield return null; } for (int i = 0; i < _bannerList.Count; i++) { GameObject gameObject = UnityEngine.Object.Instantiate(_bannerImagePrefab); gameObject.transform.SetParent(_uiWrapContent.transform); gameObject.transform.localScale = Vector3.one; gameObject.transform.localPosition = Vector3.zero; _bannerList[i].BannerGameObject = gameObject; } _uiWrapContent.onInitializeItem = _OnInitializeItem; _uiWrapContent.SortBasedOnScrollMovement(); _uiCenterOnChild.onFinished = _OnFinishedCenterChild; if (_bannerList.Count > 1) { GameObject gameObject2 = _uiWrapContent.transform.Find("0").gameObject; _uiWrapContent.transform.Find((_bannerList.Count - 1).ToString()).gameObject.transform.localPosition = new Vector3(gameObject2.transform.localPosition.x - (float)_uiWrapContent.itemSize, gameObject2.transform.localPosition.y, gameObject2.transform.localPosition.z); _pagerSpriteList = new List(); for (int j = 0; j < _bannerList.Count; j++) { GameObject gameObject3 = UnityEngine.Object.Instantiate(_pagerPrefab); gameObject3.transform.SetParent(_pagerBaseObject.transform); gameObject3.transform.localScale = Vector3.one; gameObject3.transform.localPosition = Vector3.zero; gameObject3.name = j.ToString(); _pagerSpriteList.Add(gameObject3.GetComponent()); } _PagerUpDate(); UIGrid component = _pagerBaseObject.GetComponent(); component.enabled = true; float x = component.transform.localPosition.x - component.cellWidth * (float)(_bannerList.Count - 1) / 2f; component.transform.localPosition = new Vector3(x, component.transform.localPosition.y, component.transform.localPosition.z); } else { _buttonBase.SetActive(value: false); } _centerObject = _uiWrapContent.transform.Find(_bannerNo.ToString()).gameObject; } protected void BannerOnPress(GameObject inObject, bool inState) { if (inState && Input.GetMouseButtonDown(0)) { _touchPoint = Input.mousePosition; _isClickStart = true; _isCanSlide = true; StartCoroutine(BannerPressAnimation(inObject)); } } protected void _OnInitializeItem(GameObject go, int wrapIndex, int realIndex) { int index = wrapIndex; UIEventListener.Get(go).onPress = BannerOnPress; go.name = index.ToString(); InitializeEventHandler(go, _bannerList[index]); UIEventListener uIEventListener = UIEventListener.Get(go); uIEventListener.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener.onClick, (UIEventListener.VoidDelegate)delegate { _isClickStart = false; }); } protected void _OnFinishedCenterChild() { _isAnimation = false; } protected void _PagerUpDate() { if (_bannerList.Count <= 1) { return; } for (int i = 0; i < _bannerList.Count; i++) { if (i == _bannerNo) { _pagerSpriteList[i].spriteName = "carousel_marker_on"; } else { _pagerSpriteList[i].spriteName = "carousel_marker_off"; } } } private IEnumerator BannerPressAnimation(GameObject inTweenObject) { TweenScale tweenScaleComponent = inTweenObject.GetComponent(); if ((bool)tweenScaleComponent) { tweenScaleComponent.PlayForward(); while (Input.GetMouseButton(0)) { yield return null; } tweenScaleComponent.PlayReverse(); } } }