Files
JJBB/Assets/Project/Script/GUI/Community/CommunityLargeImages.cs

123 lines
2.9 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.Item;
using System.Collections.Generic;
using GCGame.Table;
using Games.GlobeDefine;
public class CommunityLargeImages : UIControllerBase<CommunityLargeImages>
{
public NetImage[] _Images;
public Button _BtnLeft;
public Button _BtnRight;
private int _ValidImageCnt = 0;
private int _ShowingIdx = 0;
private void Update()
{
UpdateLoadingEffect();
}
public void ShowLargeImages(NetDoubleImage[] netImgs, int selectedIdx)
{
_ValidImageCnt = 0;
for (int i = 0; i < netImgs.Length; ++i)
{
if (!string.IsNullOrEmpty(netImgs[i].LargeImageUrl))
{
_Images[i].SetNetImage(netImgs[i].LargeImageUrl, netImgs[i].PlayerGuid, false);
_Images[i].GetComponent<RectTransform>().anchoredPosition = new Vector2(10000, 10000);
++_ValidImageCnt;
}
}
_ShowingIdx = selectedIdx;
RefreshShow();
}
public void RefreshShow()
{
for (int i = 0; i < _Images.Length; ++i)
{
_Images[i].GetComponent<RectTransform>().anchoredPosition = new Vector2(10000, 10000);
}
_Images[_ShowingIdx].GetComponent<RectTransform>().anchoredPosition = new Vector2(0, 0);
if (_ShowingIdx == 0)
{
_BtnLeft.gameObject.SetActive(false);
}
else
{
_BtnLeft.gameObject.SetActive(true);
}
if (_ShowingIdx == _ValidImageCnt - 1)
{
_BtnRight.gameObject.SetActive(false);
}
else
{
_BtnRight.gameObject.SetActive(true);
}
}
public void OnBtnLeft()
{
--_ShowingIdx;
_ShowingIdx = Mathf.Max(_ShowingIdx, 0);
RefreshShow();
}
public void OnBtnRight()
{
++_ShowingIdx;
_ShowingIdx = Mathf.Min(_ShowingIdx, _ValidImageCnt - 1);
RefreshShow();
}
public void CloseWindow()
{
gameObject.SetActive(false);
}
#region loading effect
public GameObject _EffectLoadingRes;
private GameObject _EffectLoadingResInstance;
private void InitEffet()
{
if (_EffectLoadingResInstance == null)
{
_EffectLoadingResInstance = GameObject.Instantiate(_EffectLoadingRes);
_EffectLoadingResInstance.transform.SetParent(transform);
_EffectLoadingResInstance.transform.localScale = Vector3.one;
_EffectLoadingResInstance.AddComponent<UIParticleSystem>();
}
}
public void UpdateLoadingEffect()
{
InitEffet();
if (_Images[_ShowingIdx]._Image.enabled)
{
_EffectLoadingResInstance.gameObject.SetActive(false);
}
else
{
_EffectLoadingResInstance.gameObject.SetActive(true);
}
}
#endregion
}