问题标签 [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.

0 投票
0 回答
838 浏览

unity3d - 保存滚动矩形或矩形变换的最后位置

我有 Level scrollrect 但我喜欢当我去选择一个级别时我总是向我展示最后一个级别(如果我完成第 13 级解锁我第 14 级并且当转到菜单场景以在此之后显示我在中间的第 14 级如果我当我再次进入菜单场景以在中心显示第 15 级时完成第 14 级)可以做到这一点并保存最后一级的最后位置。当我打开菜单场景时,它会从底部向我显示 -图 1但我喜欢当我打开菜单场景以从该位置打开时,请参见 -图 2

0 投票
3 回答
11148 浏览

unity3d - Unity3D中的ScrollRect(ScrollView)中的拖放

我想在滚动视图的内容上实现拖放。

问题是当您尝试在滚动视图中拖动项目时,您无法滚动视图。

首先,我尝试通过IDragHandler、IBeginDragHandler、IEndDragHandle和IDropHandler接口实现拖放。乍一看,它工作得很好,但问题是你不能滚动 ScrollRect。

我认为问题是因为覆盖,当我使用与拖动一样的滚动矩形相同的事件触发器时,父级不能正常工作。

所以在那之后,我自己思考并通过 IPointerDown、IPointerUp 接口和在 ScrollRect 中保持可拖动 UI 的特定时间来实现它,如果你在特定时间不保持它,滚动效果很好。

但问题是通过启用我在 OnDrag 之前编写的 DragHandler 脚本,OnBeginDrag 和 OnEndDrag 函数在保持时间结束时不起作用。

首先我想知道有什么方法可以调用这些函数吗?

其次,有什么方法可以在不使用拖动接口的情况下实现拖放 UI?

拖动处理程序:

滚动矩形控制器:

投币口:

0 投票
2 回答
1077 浏览

unity3d - 一个像素的水平分隔线与 Unity ScrollRect 一起闪烁?

我在 ScrollRect 内部有一些 GameObjects(实际上在 ScrollRect 翻译的内容对象内部)。

当内容对象的 localPosition 移动时,子对象会按预期移动,但每个子对象底部的水平分隔线不会以恒定的方式出现。有时,滚动时线条看起来更粗或更细并且“闪烁”。

我希望水平线不会明显改变。关于如何做的任何想法?

在此处输入图像描述

0 投票
1 回答
3966 浏览

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。我怎样才能做到这一点。或者有没有其他方法可以解决这个问题?

0 投票
0 回答
111 浏览

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

0 投票
1 回答
81 浏览

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 添加到对象中。也许其他人可以告知。

0 投票
1 回答
2011 浏览

c# - Unity VR - 用手移动滚动文本(Oculus)

我想要的是一个可以用手移动滚动的世界空间画布。我可以获得控制器的 worldPosition 并找到实际的运动,但我不知道如何使文本滚动。

我目前正在尝试的是使用滚动矩形+隐藏滚动条并更改滚动条的值,但这不起作用。

我也尝试过改变文本对象的世界位置,虽然我设法使文本相应地移动,但我不知道如何找到文本大小,但我认为这就像重新发明滚动矩形。

0 投票
0 回答
213 浏览

unity3d - 如何为菜单制作封面流效果

我正在尝试通过Scrollrect开发一个循环菜单,我想把它作为菜单的图片,我该怎么办?图片效果

对于这种效果,我有两个问题,一个是我应该怎么做才能使远距离物体的比例更小,另一个问题是如何为不同的按钮添加深度

这是我的带有滚动矩形的代码,它可以循环按钮:

0 投票
1 回答
376 浏览

unity3d - 如何检查 ScrollRect.OnDrag 是否像布尔值一样处于活动状态?

我正在尝试访问我的scrollrect,以了解是否使用了组件的拖动,但是on-drag方法是文档中所说的一个函数,关于如何访问ondrag的一些想法:

“如果 ondrag 处于活动状态......”

0 投票
2 回答
14590 浏览

unity3d - Unity ScrollRect / ScrollView 优化 / 性能我学到了什么

ScrollView的性能是一个真正的拖累(明白吗?),尤其是在移动平台上。我经常发现自己的速度低于 15 fps,这让用户体验感到震惊和不知所措。经过大量研究和测试后,我编制了一份清单以大幅提高性能。我现在至少获得 30 fps,大部分 CPU 时间分配给WaitForTargetFPS

我希望这可以帮助任何在这方面也遇到麻烦的人。很难找到优化解决方案。随意使用和修改我的任何代码。