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; } } } }