using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Item : MonoBehaviour
{
public ItemBase itemBase { get; set; }
public int Amount { get; set; }
private Image image;
private Image Image
{
get
{
if (image == null)
{
image = GetComponent<Image>();
}
return image;
}
}
private Text text;
private Text Text
{
get
{
if (text == null)
{
text = GetComponentInChildren<Text>();
}
return text;
}
}
private float smoothing = 5;
private float targetScale = 1;
private Vector3 AnimScale = new Vector3(1.3f, 1.3f, 1.3f);
void Update()
{
if (transform.localScale.x != targetScale)
{
float scale = Mathf.Lerp(transform.localScale.x, targetScale, smoothing * Time.deltaTime);
transform.localScale = new Vector3(scale, scale, scale);
}
}
public void SetIcon(ItemBase itemBase, int amount = 1)
{
transform.localScale = AnimScale;
this.itemBase = itemBase;
this.Amount = amount;
//更新UI
Image.sprite = Resources.Load<Sprite>("Items/" + itemBase.Icon);
if (Amount > 1)
Text.text = Amount.ToString();
else
Text.text = "";
}
#region 控制物品数量的方法
public void AddAmount(int amount = 1)
{
transform.localScale = AnimScale;
this.Amount += amount;
Text.text = Amount.ToString();
}
public void ReduceAmount(int amount = 1)
{
transform.localScale = AnimScale;
this.Amount -= amount;
if (Amount > 1)
Text.text = Amount.ToString();
else
Text.text = "";
}
public void SetAmount(int amount)
{
transform.localScale = AnimScale;
this.Amount = amount;
if (Amount > 1)
Text.text = Amount.ToString();
else
Text.text = "";
}
#endregion
#region 给pickItem用方法
public void Show()
{
gameObject.SetActive(true);
}
public void Hide()
{
gameObject.SetActive(false);
}
public void SetLocalPostion(Vector3 pos)
{
transform.localPosition = pos;
}
#endregion
}UGUI--背包系统之四--------Item
最新推荐文章于 2022-03-30 23:58:22 发布
本文介绍了一个Unity中用于物品栏展示的UI组件实现细节,包括如何设置图标、更新数量显示及平滑缩放效果等。同时提供了增加、减少物品数量的方法,并实现了物品显示与隐藏的功能。
3571

被折叠的 条评论
为什么被折叠?



