问题标签 [scrollrect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity3d - Unity3D中的ScrollRect(ScrollView)中的拖放
我想在滚动视图的内容上实现拖放。
问题是当您尝试在滚动视图中拖动项目时,您无法滚动视图。
首先,我尝试通过IDragHandler、IBeginDragHandler、IEndDragHandle和IDropHandler接口实现拖放。乍一看,它工作得很好,但问题是你不能滚动 ScrollRect。
我认为问题是因为覆盖,当我使用与拖动一样的滚动矩形相同的事件触发器时,父级不能正常工作。
所以在那之后,我自己思考并通过 IPointerDown、IPointerUp 接口和在 ScrollRect 中保持可拖动 UI 的特定时间来实现它,如果你在特定时间不保持它,滚动效果很好。
但问题是通过启用我在 OnDrag 之前编写的 DragHandler 脚本,OnBeginDrag 和 OnEndDrag 函数在保持时间结束时不起作用。
首先我想知道有什么方法可以调用这些函数吗?
其次,有什么方法可以在不使用拖动接口的情况下实现拖放 UI?
拖动处理程序:
滚动矩形控制器:
投币口:
unity3d - 滚动时从代码更改滚动视图位置
Unity 的 ScrollRect 有问题。
我想用对象池制作一个无限滚动视图。当用户滚动滚动视图时,我从列表中删除了看不见的对象。我在我的“内容”对象上使用垂直布局系统,上面中心子对齐。所以我必须重置内容的 Y 位置。
我的问题是;如果我删除一个对象并重置本地位置,则用户滚动时,在滚动视图的下一个 OnDrag 方法上,它与前一个位置连续。让我用一个例子来解释。
假设 rectTransform 的当前 y 位置是 120。我从这个变换中删除了第一个孩子,并将新的 y 位置设置为 120 - 100 = 20。(100 是已删除孩子的高度。所以其他对象将保持原位。)但是如果我继续向上滚动,下一帧中 rectTransform 的位置是 121-122 等。
我查看了 UI 的 ScrollRect.cs 类。它在 OnBeginDrag 方法上设置了 m_contentStartPosition,并根据其起始位置在 OnDrag 上设置内容的位置。所以我需要在重置rectTransform的y位置时再次设置这个m_contentStartPosition。我怎样才能做到这一点。或者有没有其他方法可以解决这个问题?
image - Reset (or change Pivot of) an Image in ScrollRect when scaling down
I have a single image that is displayed inside a scrollRect.. pivot is centered and the user is able to scale the image up and down using a slider.. then he/she is able to scroll drag the image around (with the scrollRect functionality) like for example a page in a book-app.. but when the user scales the image up and drags it around and then scales it back down again, the page shrinks at its own pivot point and sometimes gaps are visible on the sides depending on where the user has dragged the image.. When you start to drag the image again it snaps to the correct location but it doesn't look very polished when you force a user to "nudge" something before it snaps into place..
does anybody know of a way to invoke the "nudge" after scaling? Or force the ScrollRect to calculate the position of the image after scaling? I tried using math and pivot points but since the position alters with both scaling and dragging I can't hardcode a value to change pivot points (like f.e. if x < -50 and y < -50 then the pivot point should be top right) ..
The simplest solution would be to invoke that little nudge the user has to do now but I don't know how I have to go about doing it (just changing the transform.positon.x in code doesn't work, the scrollRect needs to update its content) or maybe I could reset the position of the anchor so it stays at the center of the parent..
I tried to clarify with some images: https://ibb.co/f7Oxk6
android - 使用 ScrollRect 阻止/触发输入事件隐藏的对象
该项目是用 as3 编写的,使用 AIR 28.0 打包,并在 Android 7 设备上运行(在 Windows 桌面环境中运行时运行良好)。
在我的 Android 7 (S7) 上,被 scrollRect 从视图中隐藏的对象仍在接收鼠标事件,但当我在桌面环境中运行相同的应用程序时却没有。
这是 Android 还是 AIR 错误?还是我做错了什么?
例子:
在此示例中,在内部对象中绘制的矩形仅在 outer.scrollRect 中可见(因此是 50x50 而不是 100x100),并且按钮对象在其上方可见。当可见按钮上发生单击事件时,将触发 innerClick 事件,而不是 buttonClick 事件。
似乎被应用的 scrollRect 隐藏的内部容器的不可见部分仅在视觉上隐藏并且仍然阻止输入事件。
该应用程序正在通过我的 IDE (Flash Builder) 进行编译和安装。我尝试了不同版本的 IDE 和 AIR SDK,结果相同。
任何帮助将不胜感激。
编辑:
我发现了 scrollRect 正常工作的实例,因此进行了进一步测试以缩小错误范围。
删除线:
...解决了这个问题。将 cacheAsBitmap 应用于方形对象本身也仍然可以正常工作。
出于某种原因,将 cacheAsBitmap 应用于具有 scrollRect 的对象会导致此错误,但将 cacheAsBitmap 应用于更下游的子对象可以正常工作。
我没有足够的经验来了解性能影响或为什么建议使用 scrollRect 将 cacheAsBitmap 添加到对象中。也许其他人可以告知。
c# - Unity VR - 用手移动滚动文本(Oculus)
我想要的是一个可以用手移动滚动的世界空间画布。我可以获得控制器的 worldPosition 并找到实际的运动,但我不知道如何使文本滚动。
我目前正在尝试的是使用滚动矩形+隐藏滚动条并更改滚动条的值,但这不起作用。
我也尝试过改变文本对象的世界位置,虽然我设法使文本相应地移动,但我不知道如何找到文本大小,但我认为这就像重新发明滚动矩形。
unity3d - 如何为菜单制作封面流效果
我正在尝试通过Scrollrect开发一个循环菜单,我想把它作为菜单的图片,我该怎么办?
对于这种效果,我有两个问题,一个是我应该怎么做才能使远距离物体的比例更小,另一个问题是如何为不同的按钮添加深度
这是我的带有滚动矩形的代码,它可以循环按钮:
unity3d - 如何检查 ScrollRect.OnDrag 是否像布尔值一样处于活动状态?
我正在尝试访问我的scrollrect,以了解是否使用了组件的拖动,但是on-drag方法是文档中所说的一个函数,关于如何访问ondrag的一些想法:
“如果 ondrag 处于活动状态......”
unity3d - Unity ScrollRect / ScrollView 优化 / 性能我学到了什么
ScrollView的性能是一个真正的拖累(明白吗?),尤其是在移动平台上。我经常发现自己的速度低于 15 fps,这让用户体验感到震惊和不知所措。经过大量研究和测试后,我编制了一份清单以大幅提高性能。我现在至少获得 30 fps,大部分 CPU 时间分配给WaitForTargetFPS。
我希望这可以帮助任何在这方面也遇到麻烦的人。很难找到优化解决方案。随意使用和修改我的任何代码。