248 lines
6.0 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-04-12
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "BeautyWindow.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
partial class BeautyWindow
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnBack;
//[KUIFlag]
//BeautyListPanel __goList;
[KUIFlag]
BeautyDetailPanel __goDetail;
//[KUIFlag]
//BeautyGiftPanel __goGift;
//[KUIFlag]
//BeautySkillPanel __goSkill;
[KUIFlag]
BeautySkinPanel __goSkin;
[KUIFlag]
BeautyGiftAndSkillPanel __goGiftAndSkill;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
/// <summary>
///
/// </summary>
public void InitView()
{
SetViewData();
_btnBack.onClick.AddListener(this.OnBackBtnClick);
}
/// <summary>
///
/// </summary>
public void RefreshView()
{
__goDetail.gameObject.SetActive(false);
__goGiftAndSkill.gameObject.SetActive(false);
//__goGift.gameObject.SetActive(false);
//__goSkill.gameObject.SetActive(false);
if (this.data != null)
ShowDetailPanel(this.data);
else
ShowBeautyList();
}
public void ShowBeautyList()
{
//__goList.gameObject.SetActive(true);
}
public void ShowDetailPanel(object data)
{
//__goList.gameObject.SetActive(false);
__goDetail.gameObject.SetActive(true);
__goDetail.SetData(data);
}
public void ShowGift1Panel(object data)
{
//__goGift.gameObject.SetActive(true);
//__goGift.SetData(data);
//__goGift.ShowGift1();
var function = FunctionProxy.Instance.GetFunction(FunctionProxy.FunctionId.);
if (function == null || function.IsUnlock())
{
__goGiftAndSkill.gameObject.SetActive(true);
__goGiftAndSkill.SetData(data);
}
else
{
ToastBox.ShowText(function.lockTips);
}
//__goGiftAndSkill.ShowGift1();
}
public void ShowGift2Panel(object data)
{
//__goGift.gameObject.SetActive(true);
//__goGift.SetData(data);
//__goGift.ShowGift2();
//__goGiftAndSkill.gameObject.SetActive(true);
//__goGiftAndSkill.SetData(data);
//__goGiftAndSkill.ShowGift2();
}
public void ShowSkillPanel(object data)
{
//__goSkill.gameObject.SetActive(true);
//__goSkill.SetData(data);
var function = FunctionProxy.Instance.GetFunction(FunctionProxy.FunctionId.);
if (function == null || function.IsUnlock())
{
__goGiftAndSkill.gameObject.SetActive(true);
__goGiftAndSkill.SetData(data);
__goGiftAndSkill.ShowSkill();
}
else
{
ToastBox.ShowText(function.lockTips);
}
}
private void ShowSkinPanel(object data)
{
//ToastBox.ShowText("敬请期待");
__goSkin.gameObject.SetActive(true);
__goSkin.SetData(data);
}
private void OnBackBtnClick()
{
//if (__goGift.gameObject.activeSelf)
//{
// __goGift.Close();
//}
//else if (__goSkill.gameObject.activeSelf)
//{
// __goSkill.Close();
//}
//else
if (__goGiftAndSkill.gameObject.activeSelf)
{
__goGiftAndSkill.Close();
}
else if (__goDetail.gameObject.activeSelf)
{
if (this.data != null)
{
Close();
}
else
{
__goDetail.Close();
ShowBeautyList();
}
}
else
{
Close();
}
}
private void Close()
{
CloseWindow(this);
OpenWindow<BusinessWindow>();
}
public static System.Collections.IEnumerator LoadBeautySkin(ItemBeautySkin skin, Image picture, Spine.Unity.SkeletonGraphic skeleton)
{
if (string.IsNullOrEmpty(skin.asset))
{
picture.gameObject.SetActive(true);
skeleton.gameObject.SetActive(false);
var handle = AssetProxy.Instance.TryGetTemporaryAssetAsync<Sprite>($"{skin.picture}/pic.png");
yield return handle;
picture.sprite = handle.Result;
}
else
{
picture.gameObject.SetActive(false);
skeleton.gameObject.SetActive(true);
var handle = Resources.LoadAsync<Spine.Unity.SkeletonDataAsset>($"beauties/{skin.asset}/skeleton_SkeletonData");
yield return handle;
//skeleton.raycastTarget = false;
skeleton.skeletonDataAsset = handle.asset as Spine.Unity.SkeletonDataAsset;
skeleton.Initialize(true);
yield return null;
skeleton.AnimationState.SetAnimation(0, "idle", true);
//var handle = AssetProxy.Instance.TryGetTemporaryAssetAsync<GameObject>($"{skin.asset}");
//yield return handle;
//var skinGo = Object.Instantiate(handle.Result);
//skinGo.transform.SetParent(skeleton.transform, false);
//var graphic = skinGo.GetComponent<Spine.Unity.SkeletonGraphic>();
}
}
public static System.Collections.IEnumerator LoadBeautySkin2(ItemBeautySkin skin, Image picture, GameObject skeletonRoot)
{
if (string.IsNullOrEmpty(skin.asset))
{
picture.gameObject.SetActive(true);
skeletonRoot.SetActive(false);
var handle = AssetProxy.Instance.TryGetTemporaryAssetAsync<Sprite>($"{skin.picture}/pic.png");
yield return handle;
picture.sprite = handle.Result;
}
else
{
picture.gameObject.SetActive(false);
skeletonRoot.SetActive(true);
var skinAsset = skin.asset;
var rootTr = skeletonRoot.transform;
if (rootTr.childCount > 0)
{
var child = rootTr.GetChild(0);
if (child.name == skinAsset)
{
skinAsset = "";
yield break;
}
AssetProxy.Instance.ReleaseInstance(child.gameObject);
}
if (!string.IsNullOrEmpty(skinAsset))
{
var handle = AssetProxy.Instance.InstantiateAsync(skin.asset, rootTr);
yield return handle;
handle.Result.name = skin.asset;
}
}
}
#endregion
}
}