我有一个带有 Grid Layout Group
组件的面板。在里面我有一个名为 slot 的面板,里面有一张背景图片,在里面我有一个预制的 2 张图片。它看起来像这样:
我写了一个在 TankPrefab
中找到的拖放脚本:
public class DragHandler : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler {
public static GameObject itemBeingDragged;
Vector3 startPosition;
public void OnBeginDrag(PointerEventData eventData)
{
itemBeingDragged = gameObject;
startPosition = transform.position;
}
public void OnDrag(PointerEventData eventData)
{
transform.position = Input.mousePosition;
}
public void OnEndDrag(PointerEventData eventData)
{
itemBeingDragged = null;
transform.position = startPosition;
}
}
当我将坦克拖过在坦克槽之后找到的槽时,我遇到了问题。它把坦克拉到他身后:
我在 OnBeginDrag
中尝试了 transform.SetAsLastSibling();
但它只是将它移动到父级(插槽)中的第一个,我希望它位于另一个之上插槽,所以我也尝试了 transform.parent.SetAsLastSibling();
起初它看起来像是在工作,但在 2 次拖动后坦克消失了
最佳答案
尝试将“ Canvas ”组件添加到您的预制件并选中“覆盖排序”并设置排序顺序。我想我还必须添加图形光线转换器。
检查员:
关于c# - unity拖放,拖到其他UI元素后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405716/