如何在Unity中为圆形滚动列表设置动画?

时间:2016-12-12 16:00:35

标签: user-interface unity3d

这里几乎是新手,我试图为用户界面创建一个圆形滚动列表,但我已经陷入困境,我不确定我是否使用了正确的工具。

我想要获得的是一个菜单,显示三个垂直排列的声音,中间的声音突出显示。

当用户按下向上(或向下)箭头时,声音向下(或向上)移动,最后一个声音消失,另一个(我从一系列字符串中选取)出现在第一个插槽中。 [下一张图片中的示例]

目前我创建了五个对象" slot&#34 ;,是一个带有文本组件的变换,第一个和最后一个用alpha设置为0;第二,第三和第四是可见的。 当用户按下时,对象向下滚动,第五个位置的文本(不可见)转到第一个位置(仍然不可见),并更新他的.text字段以包含正确的声音。 我的问题是动画使选项滚动。 如果我对每个槽使用状态机行为,我不能只为每个位置都有一个状态,因为与状态相关的运动应该来自不同的边(例如:一个对象可以从4和2到达位置3)。 所以我尝试用单个帧制作动画,让状态之间的混合完成工作并且它可以正常工作

示例和第一个状态机:

enter image description here

(翻译由触发器goUp / goDown激活)

但当然我不能统一使用动画面板中的曲线,并且混合感觉有些笨拙。

所以我做了一个更复杂的SM,每个状态都与一个动画相关联(所以我的状态是:0to1,1to2,...,1to0,2to1等)

过度纠结的状态机:

enter image description here

(我从FadeIn中删除了翻译以提高"可读性")

但我觉得我选择了一种过于复杂且不易扩展的方式来创建一个相对简单的东西。

我是做正确的事还是我应该考虑放弃SM并通过脚本处理所有内容(最重要的是,通过脚本创建动画)?

1 个答案:

答案 0 :(得分:0)

我同意推文的建议。它会简化它。 这是一个体面的插件插件 http://dotween.demigiant.com 它具有转换游戏对象的扩展,例如移动,旋转,缩放。它还为其他组件提供了许多不错的功能,包括改变alpha的颜色。 所以,我想你会发现它很有用。