90 lines
2.5 KiB
C#
90 lines
2.5 KiB
C#
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|