You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.0 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LzFramework;
using System;
using DG.Tweening;
namespace DisComputer
{
/*
* @func 映射3D零件
* @author lz
* @data 2020/05/29
* */
public class RendereSpareControl : Singleton<RendereSpareControl>
{
public List<SpareRendererType> spareRendererTypes;
//圆盘
[SerializeField]
private GameObject circlePlatGo;
//圆盘缩放系数
private float circleScaleVal;
private SpareRendererType curSpareRen;
private float curSpareScaleVal;
// Start is called before the first frame update
void Start()
{
circleScaleVal = circlePlatGo.transform.localScale.x;
circlePlatGo.transform.localScale = Vector3.zero;
circlePlatGo.SetActive(false);
}
/// <summary>
/// 显示零件渲染
/// </summary>
/// <param name="type"></param>
public void ShowSpareRenderer(SpareType type)
{
for(int i = 0;i< spareRendererTypes.Count; i++)
{
if(spareRendererTypes[i].type == type)
{
spareRendererTypes[i].targetGo.SetActive(true);
curSpareScaleVal = spareRendererTypes[i].targetGo.transform.localScale.x;
curSpareRen = spareRendererTypes[i];
circlePlatGo.gameObject.SetActive(true);
circlePlatGo.transform.DOScale(new Vector3(circleScaleVal, circleScaleVal, circleScaleVal),0.25f).SetEase(Ease.InSine);
LzFramework.UI.TTUIPage.ShowPage<SparePlatformView>();
break;
}
}
}
/// <summary>
/// 隐藏零件渲染
/// </summary>
public void HideSpareRenderer()
{
circlePlatGo.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InSine).OnComplete(()=>
{
circlePlatGo.SetActive(false);
});
if (curSpareRen != null && curSpareRen.targetGo != null)
{
curSpareRen.targetGo.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InSine).OnComplete(() =>
{
curSpareRen.targetGo.SetActive(false);
curSpareRen.targetGo.transform.localScale = new Vector3(curSpareScaleVal, curSpareScaleVal, curSpareScaleVal);
LzFramework.UI.TTUIPage.ClosePage<SparePlatformView>();
//打开零件背包
LzFramework.UI.TTUIPage.ShowPage<SparePartsView>(false);
MessageContainer.SendMessage(curSpareRen.type, this, MsgName.SparePartsViewAddSpare, 0.25f);
});
}
}
}
[Serializable]
public class SpareRendererType
{
public SpareType type;
public GameObject targetGo;
}
}