Files
JJBB/Assets/Project/Script/GUI/Aucation/AucationRewardPanel.cs

90 lines
2.5 KiB
C#
Raw Permalink Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using GCGame.Table;
public class AucationRewardPanel : MonoBehaviour {
public Text itemName;
public Image itemIcon;
public Image itemQuality;
public Transform endPos;
public GameObject item; //需要被移动的物体
public static AucationRewardPanel Instance;
private void Awake()
{
Instance = this;
}
private void OnEnable()
{
item.transform.localPosition = Vector3.zero;
item.transform.localScale = Vector3.one;
}
private void OnDestroy()
{
Instance = null;
}
public void GetItemInfo(int snatchId)
{
Tab_SnatchTreasure snatchTab = TableManager.GetSnatchTreasureByID(snatchId, 0);
if(snatchTab == null)
{
return;
}
Tab_CommonItem commonItem = TableManager.GetCommonItemByID(snatchTab.ItemId, 0);
if(commonItem == null)
{
return;
}
LoadAssetBundle.Instance.SetImageSprite(itemIcon, commonItem.Icon);
LoadAssetBundle.Instance.SetImageSprite(itemQuality, GCGame.Utils.GetItemQualityFrame(commonItem.Quality));
if (commonItem.QualityEffect > 0)
{
CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, itemIcon.transform);
}
else
{
CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, itemIcon.transform);
}
itemName.text = commonItem.Name + "X" + snatchTab.ItemNum;
totalDistance = Vector3.Distance(item.gameObject.transform.position, endPos.position);
InitMoveInfo();
}
public void InitMoveInfo()
{
isStartMove = true;
moveSpeed = 0.2f;
}
private bool isStartMove = true;
private float moveSpeed = 0.2f;
private float totalDistance = 0.0f;
private float distance = 0.0f;
private void FixedUpdate()
{
if(isStartMove)
{
Vector3 direction = (endPos.position - item.gameObject.transform.position).normalized; //方向
distance = Vector3.Distance(item.gameObject.transform.position, endPos.position);
float scale = distance / totalDistance;
item.transform.localScale = new Vector3(scale, scale, 0);
item.gameObject.transform.Translate(direction * moveSpeed);
if(distance <= 0.1f)
{
UIManager.CloseUI(UIInfo.AucationRewardPanel);
isStartMove = false;
}
}
}
}