当前位置: 首页 > 知识库问答 >
问题:

Unity sprite拖动时不可见

欧阳高昂
2023-03-14

我在一个2D游戏中使用Unity(我对它还是很业余的),虽然使用create->ui->image添加一个新的sprite工作很好,但无论我从资产文件夹中拖放一个图像,它总是位于我为画布设置的背景后面,不管我是否使用更高的排序顺序,如果图像是画布的子级,或者图层对我的所有画布元素都是相同的(UI或默认)。在尝试拖动动画时也会得到相同的结果。

我在某个地方读到画布有点像另一个UI元素,图像必须是它的子元素才能显示在它上面,但即使我将它作为子元素拖到画布上,我仍然得到相同的结果。其他的想法是使用世界空间模式,这似乎是为精灵修复它,但我只是不确定为什么。

有人能解释一下发生了什么吗?我真的找不到一个很好的资源来解释它,以这样一种方式来帮助我理解。谢谢!

共有1个答案

魏鸿禧
2023-03-14

在screenspace模式下,画布总是呈现在正常场景对象的顶部(按设计)。将从UnityEngine.Object继承的类型(如sprites)拖放到Canvas层次结构中不会将它们放在screenspace画布上,而是放在(2D)3D场景中(即使它们在Canvas层次结构中)。为了使图像符合画布可视化排序深度(层次结构中的顺序),您必须放置UnityEngine.ui.image,然后向其添加资源精灵(如您发现的那样)。在这一点上,您可以控制sprite资源的“深度”,仅相对于其他Canvas UI对象,并且它将始终位于其他基于场景的对象之上。

换句话说,Canvas及其UnityEngine.UI对象(在screenspace模式下)将始终呈现在正常场景对象的顶部(即像HUD一样)。在worldspace模式下,每个Canvas对象(及其UnityEngine.UI子对象)都可以在3D场景中定位,就像它是一个普通场景对象一样(或多或少)。

 类似资料:
  • 我在JavaFX中创建了一个小的绘画程序,并且有了一个圆形创建工具。目前,我可以正确地画圆,但与我的其他工具不同,我看不到正在创建的圆(即,当我拖动鼠标时)。只有当我松开鼠标时,我才能看到圆(以正确的尺寸绘制)。我试图在拖动时添加一个< code>strokeOval()方法,但是它创建了一个奇怪的“泪珠”状的圆。我什么都试过了,有人能帮忙吗? 这是我的代码: 上面的代码正确创建了圆,但在我释放鼠

  • jQueryUI提供了draggable()方法,可以使任何DOM元素可拖动。 一旦元素可拖动,您可以通过用鼠标单击它并将其拖动到视口内的任何位置来移动该元素。 语法 (Syntax) draggable()方法可以使用两种形式 - $(selector,context).draggable(options)方法 $(selector,context).draggable(“action”,[pa

  • 我有一个非常奇怪的问题,当我把一个项目从计划外的游戏桶拖到一个网格中时,你可以看到可拖动的项目被切断,大约80%的时间都是在这个区域上拖动的。 当计划外游戏中的项目溢出时,滚动条会出现这种情况。否则,拖动时不会切断。在网格中的游戏之间也可以找到拖放工作。 这只发生在Chrome中。Firefox和Edge运行良好。我真的不知道要显示什么JS或CSS,因为它可以是任何东西。 另外,当我像下面的屏幕一

  • 你好,堆栈溢出,目前正在处理一个需要拖动元素的任务;不是本机API所做的图像拖动,而是拖动实际的元素。元素应该显示一个要删除的位置框,并在将其拖过一个区域时更改其自身的内部内容,该区域将在删除时删除该元素。到目前为止,我发现了这个有用的指令,帮助我做到这一点https://xieziyu.github.io/angular2-draggable/#/usage/basic 问题是,一旦元素通过某个

  • 我试图将jQuery可拖动、可拖放和可排序相结合;然而,我一直有问题。有人能帮帮我吗? A、 B、C、D、E瓷砖可在上部可放下和可分拣之间移动 此外,我正试图在必要时在任何位置停用和重新激活所有这些。 这是我的,但它很有缺陷,也不漂亮: JS 超文本标记语言

  • 基本上,我想要的是,当拖动时,如果我走出容器区域并在那里释放鼠标单击,可拖动的元素只会粘附到我离开容器区域的边界上。当我将光标移回时,元素会粘回到光标上。当您只是移动光标(而不是拖动)而元素仍在被拖动时,它看起来并不好看。 这是一把小提琴。只要在输出区域外拖动并释放光标,您就会得到我所说的内容。 我在想两种方法 > 在拖动时限制鼠标移动到容器网区域(我搜索了一下,没有找到怎么做。也许这是不可能的?