背包层级如下:
Inventory-item-grid是背包格子预制体,Inventory-item是物品预制体
Inventory-item物品预制体挂载的同名脚本中包含:Image(图片)、number(数量)两个属性

public class InventoryItem : MonoBehaviour, IDragHandler ,IBeginDragHandler, IEndDragHandler
{
private Transform parentToReturnTo = null;
private Canvas canvas;
private int originalSiblingIndex;
private void Awake()
{
canvas = GetComponentInParent<Canvas>();
}
public void OnDrag(PointerEventData eventData)
{
transform.position = eventData.position;
}
public void OnBeginDrag(PointerEventData eventData)
{
// 记录原始父对象和层级
parentToReturnTo = transform.parent;
originalSiblingIndex = transform.GetSiblingIndex();
// 临时将物品移至Canvas下最高层级
transform.SetParent(canvas.transform);
transform.SetAsLastSibling(); // 设为Canvas下最后一个子对象
}
public void OnEndDrag(PointerEventData eventData)
{
// 恢复原始父对象和层级
transform.SetParent(parentToReturnTo);
transform.SetSiblingIndex(originalSiblingIndex);
}
}
3780

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



