Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
295 lines
7.7 KiB
C#
295 lines
7.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Wizard;
|
|
|
|
public class MyPageBanner : MyPageBannerBase
|
|
{
|
|
protected enum MoveSide
|
|
{
|
|
Left,
|
|
Right
|
|
}
|
|
|
|
[SerializeField]
|
|
protected UICenterOnChild _uiCenterOnChild;
|
|
|
|
[SerializeField]
|
|
protected GameObject _pagerPrefab;
|
|
|
|
[SerializeField]
|
|
protected UIWrapContent _uiWrapContent;
|
|
|
|
[SerializeField]
|
|
protected GameObject _pagerBaseObject;
|
|
|
|
[SerializeField]
|
|
protected GameObject _buttonBase;
|
|
|
|
[SerializeField]
|
|
protected GameObject _buttonLeftObject;
|
|
|
|
[SerializeField]
|
|
protected GameObject _buttonRightObject;
|
|
|
|
[SerializeField]
|
|
private GameObject _bgObject;
|
|
|
|
protected bool _isAnimation;
|
|
|
|
protected bool _isCanSlide;
|
|
|
|
protected bool _isClickStart;
|
|
|
|
protected Vector3 _touchPoint;
|
|
|
|
protected int _bannerNo;
|
|
|
|
protected List<UISprite> _pagerSpriteList;
|
|
|
|
protected float _updateTimer;
|
|
|
|
protected GameObject _centerObject;
|
|
|
|
protected bool _isLeftButtonPressed;
|
|
|
|
protected bool _isRightButtonPressed;
|
|
|
|
private const int SLIDE_LIMIT_VALUE = 30;
|
|
|
|
private const string PAGER_OFF_SPRITE_NAME = "carousel_marker_off";
|
|
|
|
private const string PAGER_ON_SPRITE_NAME = "carousel_marker_on";
|
|
|
|
private const string CSV_NAME = "banner";
|
|
|
|
private void Start()
|
|
{
|
|
UIEventListener.Get(_buttonLeftObject).onPress = LeftButtonOnPress;
|
|
UIEventListener.Get(_buttonRightObject).onPress = RightButtonOnPress;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (!base.IsCreateEnd)
|
|
{
|
|
return;
|
|
}
|
|
slideMoveUpdate();
|
|
if (_bannerList.Count > 1 && _isCanSlide)
|
|
{
|
|
_updateTimer += Time.deltaTime;
|
|
float changeTime = _bannerList[_bannerNo]._changeTime;
|
|
if (_updateTimer >= changeTime)
|
|
{
|
|
SlideStartSetting(MoveSide.Right);
|
|
}
|
|
}
|
|
if (_isCanSlide)
|
|
{
|
|
if (_isLeftButtonPressed)
|
|
{
|
|
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
|
SlideStartSetting(MoveSide.Left);
|
|
}
|
|
else if (_isRightButtonPressed)
|
|
{
|
|
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
|
SlideStartSetting(MoveSide.Right);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override IEnumerator CreateBannerImage()
|
|
{
|
|
_bannerList = new List<BannerInfo>(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<UISprite>();
|
|
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<UISprite>());
|
|
}
|
|
_PagerUpDate();
|
|
UIGrid component = _pagerBaseObject.GetComponent<UIGrid>();
|
|
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));
|
|
}
|
|
}
|
|
|
|
private void slideMoveUpdate()
|
|
{
|
|
if (!_isAnimation)
|
|
{
|
|
_isCanSlide = true;
|
|
}
|
|
if (_isClickStart && Input.GetMouseButton(0) && _isCanSlide)
|
|
{
|
|
if (Input.mousePosition.x < _touchPoint.x - 30f)
|
|
{
|
|
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
|
SlideStartSetting(MoveSide.Right);
|
|
}
|
|
else if (Input.mousePosition.x > _touchPoint.x + 30f)
|
|
{
|
|
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
|
SlideStartSetting(MoveSide.Left);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void LeftButtonOnPress(GameObject inObject, bool isPressed)
|
|
{
|
|
_isLeftButtonPressed = isPressed;
|
|
_OnFinishedCenterChild();
|
|
}
|
|
|
|
protected void RightButtonOnPress(GameObject inObject, bool isPressed)
|
|
{
|
|
_isRightButtonPressed = isPressed;
|
|
_OnFinishedCenterChild();
|
|
}
|
|
|
|
protected void SlideStartSetting(MoveSide inMoveSide)
|
|
{
|
|
_isAnimation = true;
|
|
_isCanSlide = false;
|
|
_isClickStart = false;
|
|
_touchPoint = Input.mousePosition;
|
|
_updateTimer = 0f;
|
|
if (inMoveSide == MoveSide.Left)
|
|
{
|
|
_bannerNo = ((_bannerNo - 1 < 0) ? (_bannerList.Count - 1) : (_bannerNo - 1));
|
|
}
|
|
else
|
|
{
|
|
_bannerNo = (_bannerNo + 1) % _bannerList.Count;
|
|
}
|
|
if (_bannerList.Count == 2)
|
|
{
|
|
GameObject gameObject = _uiWrapContent.transform.Find(_bannerNo.ToString()).gameObject;
|
|
Vector3 localPosition = _centerObject.transform.localPosition;
|
|
if (inMoveSide == MoveSide.Left)
|
|
{
|
|
localPosition.x -= _uiWrapContent.itemSize;
|
|
gameObject.transform.localPosition = localPosition;
|
|
}
|
|
else
|
|
{
|
|
localPosition.x += _uiWrapContent.itemSize;
|
|
gameObject.transform.localPosition = localPosition;
|
|
}
|
|
}
|
|
_centerObject = _uiWrapContent.transform.Find(_bannerNo.ToString()).gameObject;
|
|
_uiCenterOnChild.CenterOn(_centerObject.transform);
|
|
_PagerUpDate();
|
|
}
|
|
|
|
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<TweenScale>();
|
|
if ((bool)tweenScaleComponent)
|
|
{
|
|
tweenScaleComponent.PlayForward();
|
|
while (Input.GetMouseButton(0))
|
|
{
|
|
yield return null;
|
|
}
|
|
tweenScaleComponent.PlayReverse();
|
|
}
|
|
}
|
|
|
|
protected void OnDisable()
|
|
{
|
|
_isClickStart = false;
|
|
}
|
|
|
|
public void SetChild(GameObject obj)
|
|
{
|
|
obj.transform.parent = _bgObject.transform;
|
|
}
|
|
}
|