OSA实战笔记二
本文是我在实际项目开发中,总结和归纳的笔记,主要记录了OSA常用的参数释义。
OSA的Params
1、Scroll Sensivity
对⿏标滚轮(或类似)输⼊的敏感度,与通过滚动条拖动或滚动⽆关。
2、Scroll Sensivity On X Axis
对⿏标⽔平滚动轮(如果⽀持)或类似输⼊的敏感度,这些输⼊在⽔平轴上发送滚动信号。与通
过滚动条拖动或滚动⽆关。默认情况下,它被设置为正值以符合Unity的ScrollRect(出于某种原
因,它会反转左右⽅向)。如果要将OSA嵌套在⼀个常规的⽔平ScrollRect中,请将ScrollRect的
sensivity设置为正值,将OSA的ScrollSensivityOnXAxis设置为负值,以获得直观的滚动。
3、Content Padding
填充Content的4个边。提⽰:如果使⽤固定的、恒定的ItemTransversalSize,还应将横向填充
设置为-1(左/右表⽰垂直滚动视图,反之亦然)。这将使项⽬横向居中对⻬
4、Gravity
只有当Content⼤⼩⼩于Viewport时,才能看到此属性修改Content的Pivot效果。在这种情况
下,有3种可能:将内容放置在开始、中间或结束位置。不会更改内容的位置(将保留在编辑模式下对⻬内容的⽅式中)
FROM_PIVOT:使⽤编辑模式下的Pivot数值;
START:PivotX:0;PivotY:0.5;
CENTER:PivotX:0.5;PivotY:0.5;
END:PivotX:0.5;PivotY:0.5。
5、Content Spacing
ItemPrefab之间的空隙。
6、DefaultItem Size
未指定⼤⼩的所有ItemPrefab的⼤⼩。
7、Forward Drag To Parents
如果scroll视图是另⼀个scroll的⼦视图,那么可能需要这个。 如果enabled,第⼀个⽗级实现所有Drag事件监听,并且在所有⽗级中找到的第⼀个 IScrollHandler(但应该在同⼀个游戏对象上找到其他监听),当这些事件在此滚动视图上发⽣时, 将接收这些事件。这在Unity的ScrollRect和OSA中都可以使⽤。
8、Forward Drag Same Direction At Boundary
当滚动位置位于边界处时,它会以相同的⽅向将拖动/滚动转发给⽗级,从⽽允许滚动具有相同
滚动⽅向的嵌套滚动视图。ForwardDragToParents也需要启⽤才能⼯作。
9、Drag Enabled
允许直接单击和拖动内容(默认情况下启⽤)。Forward Drag To Parents不受此影响。
10、Scroll Enabled
允许通过⿏标滚轮或其他类似的输⼊设备滚动(默认情况下启⽤)。Forward Drag To Parents
不受此影响。
11、Use Unscaled Time
如果启⽤,将使⽤Time.unscaledTime替代Time.time,这意味着动画、惯性等不会受到
Time.timeScale的影响。
12、Item Transversal Size
垂直于滚动⽅向的ItemPrefab⼤⼩(Vertical列表Width,Horizontal列表Height)。
== -1:ItemPrefab的宽度(⽔平滚动视图的⾼度)不会发⽣任何更改;
== 0:填充到可⽤空间,同时考虑内容填充;
> 0:固定⼤⼩;在这种情况下,最好还将横向填充设置为-1,以便项⽬居中。
13、Effects
1)、Content Visual
此RawImage将与内容⼀起滚动。内容始终是固定的(这是回收过程的⼯作⽅式),因此滚
动纹理的x/y会伪造滚动效果。提⽰:使⽤⽆缝/循环背景纹理以获得最佳视觉效果。
2)、Elastic Movement
弹性运动开关,启⽤LoopItems将失效。
3)、Pull Elasticity
拉拔弹性值。
4)、Release Time释放时间。
5)、Inertia
惯性开关。
6)、Inertia Deceleration Rate
拖动结束后,惯性每秒将损失多少百分⽐(0=0%,1=100%)的速度。1=全部(⽴即停
⽌),0=⽆(⽆限期保持恒定滚动速度)。
7)、 Cut Movement On Pointer Down
当⿏标单击/触摸开始时,停⽌惯性或滚动动画的任何移动。
8)、MaxSpeed
可以理解为拖动的⼒,惯性的最⼤值,数值即为Velocity。
9)、Transient speed between drags(拖动间的瞬时速度)
如果启⽤,同⼀⽅向的多次拖动将导致更⾼的速度。
10)、LoopItems
如果为真:
当到达最后⼀个Item时,第⼀个Item出现在它之后,基本上实现⽆限滚动。最初设计⽤于spinner之类的效果,但实际可以⽤于任何类似效果。在⼀些⾮常模糊、繁杂的结构或设置中,可能会⼲扰其他功能,因此请务必测试这些功能。
请注意:
有时在拖动内容的过程中,实际的循环会更改Unity的内部PointerEventData以获取当前的click/touch指针id,因此,如果您也在外部跟踪当前的click/touch,仅“PointerEventData.pointercurrentrycast”和“PointerEventData.position”(当前位置)
保留,其他位置重置为默认值以确保平滑的循环转换。
11)、Content Visual Parallax Effect
contentVisual的附加阻⼒因⼦。
== -2:contentVisual的移动量与Item的移动量完全相同,但⽅向相反;
== -1:不移动;
== 0:相同的速度(与Item⼀起);
== 1:相同⽅向上快2倍;
== 2:相同⽅向上快3倍等。
12)、Gallery(展⽰效果)
a、Overall Amount
展览效果本⾝的amount ,与单个动画的amount ⽆关。0=禁⽤ b、Scale(缩放效果)
a)、Amount
对中间Item应⽤“最⼤”值,并逐渐“降低”旁边Item的值。0=⽆效;1=最横向的项⽬将具有“最低”。
b)、ViewportPivot
ViewportPivot可⽤于在中间以外的其他位置设置权重。0=开始;1=结束;-1=位于<viewportSize>前的点;2=位于<viewportSize>后的点。
c)、Exponent
1=线性。指数越⼤,远离Pivot的Item的值降低得越快(请参⻅ViewportPivot)
d)、MinValue
任何Item的最⼩值。
e)、Transform Space
From:距离Pivot最远Item的值。
To:距离Pivot最近Item的值。
c、Rotation(旋转效果,参数参考Scale)
14、Optimization(优化项)
1)、Recycle Bin Capacity
除了可⻅的对象之外,内存中最多要保留多少对象。默认情况下,最多只能保留试探性地找到的“理想”项⽬数内存。设置⼀个正整数来限制它。在这种情况下,要么使⽤⽐需要更多的RAM,要么使⽤⽐需要更多的CPU。⼀个优点是,您可以获得可预测的资源使⽤情况(例如,通过指定⼀个恒定的bin⼤⼩,如果实际可⻅项计数不超过此值,则不会销毁任何项)。请注意,这不包括“缓冲”项,⽽根据设计,“缓冲”项不能直接销毁。
2)、Scale To Zero Instead Of Disable
允许将视图外对象缩放到零,⽽不是取消激活它们,因为游戏对象.SetActive调⽤每个帧的成本稍⾼(尤其是通过滚动条滚动时)。这不是⼀个主要的速度提⾼,⽽是⼀个轻微的记忆改善。如果游戏/业务逻辑不要求取消激活游戏对象,建议使⽤此选项。
3)、Force Layout Rebuild On Begin Smooth Scroll
仅当调⽤SmoothScrollTo时看到FPS下降时才禁⽤。
4)、Force Layout Rebuild On Drag
仅当遇到Item未对⻬的问题时启⽤。如果OSA得到了正确的实现,就不应该发⽣这种情况(如果您发现请报告)。然⽽,如果需要快速修复,此功能仍提供。5)、Keep Items Sorted In Hierarchy是否对Content下Item对象进⾏排序。仅在需要时使⽤,因为这对性能有轻微影响。默认关闭。
15、Also Control Item Transversal Size
是否将BaseParam的ItemTransversalSize设置为预置的横向⼤⼩,就像使⽤DefaultItemSize.
设置如果设置为true,则会覆盖设置为的任何值ItemTransversalSize.设置如果设置为false,则保持ItemTransversalSize不变。
16、Snapper8的参数
1、Snap When Speed Falls Below
当速度降到XX时,开始snap效果。
2、Viewport Snap Pivot
Snap时Viewport的Pivot。
3、Item Snap Pivot
Snap时Item的Pivot。
4、Snap Duration
Snap效果持续时间。
5、Snap Allowed Error
当前需居中的Item,距离中点的误差值。
6、Min Speed To Allow Snap To Next
如果当前拖动距离不⾜以更改当前居中的Item,则如果当前速度⼤于此值,仍将捕捉到下⼀个
Item。设置为负值以禁⽤(默认)。对⻚⾯视图之类的很有⽤。
7、Skip If Reached Extremity
到达极限时跳过。