c# - unity拖放,拖到其他UI元素后面

标签 c# user-interface unity3d

我有一个带有 Grid Layout Group 组件的面板。在里面我有一个名为 slot 的面板,里面有一张背景图片,在里面我有一个预制的 2 张图片。它看起来像这样: how the grid layout group looks 我写了一个在 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;
    }
}

当我将坦克拖过在坦克槽之后找到的槽时,我遇到了问题。它把坦克拉到他身后: the problem 我在 OnBeginDrag 中尝试了 transform.SetAsLastSibling(); 但它只是将它移动到父级(插槽)中的第一个,我希望它位于另一个之上插槽,所以我也尝试了 transform.parent.SetAsLastSibling(); 起初它看起来像是在工作,但在 2 次拖动后坦克消失了

最佳答案

尝试将“ Canvas ”组件添加到您的预制件并选中“覆盖排序”并设置排序顺序。我想我还必须添加图形光线转换器。

检查员:

inspector

关于c# - unity拖放,拖到其他UI元素后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405716/

相关文章:

c# - 如何设置图像评级?

c# - 生成带有图像的辅助图 block 不立即显示图像

java - 创建新线程以更新所述单独线程中的 JLabel 和 setIcon()

unity3d - unity安装AR foundation和ar core有问题?

ios - 错误 : You are not allowed to remove the Unity splash screen from your game

c# - 我可以使用什么 WPF 方法在控件的第一个显示上设置一些属性?

c# - 在 GridView 上选择到另一个页面时传递值

Java Swing JTextArea 左右书写

java - 如何创建出现在程序最顶部的 Swing 菜单栏?

android - Facebook unity SDK 与其他插件的实现