248 lines
6.0 KiB
C#
248 lines
6.0 KiB
C#
// ***********************************************************************
|
|
// 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
|
|
}
|
|
}
|