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
 到达极限时跳过。 
