简单实例

2021-09-23  本文已影响0人  侠者大屁屁
层级结构

修改Image跟Text的宽高为160*10,并将pos属性设置为0,将Text文本的对齐方式改为上下居中对齐。效果如下图

效果图

选中Text,在其Inspector上面点击AddComponent - Layout - ContentSizeFitter添加组件。修改ContentSizeFitter组件的Horrizontal Fit水平适应为Preferred Size偏好模式。这样Text的宽度会跟随输入文本的长度进行自适应

效果图

选中Image,在其Inspector面板中点击AddComponent - Layout - Horrizontal Layout Group 添加水平布局组件,勾选为Child Control Size的Width属性,其他属性都去除勾选

同样的,添加一个Content Size Fitter组件,并修改Horrizontal Fit为Preferred Size水平偏好

此时修改文本,Image的宽度已经会跟随变化

但是Image跟Text贴的太紧。因此选中Image,修改Horrizontal Layout Group水平布局组的Padding属性,修改Left跟Right属性值为8或者其他合适的值即可

Button

可以看到底下多了四个属性:

我们需要针对这几个属性做动画,即对按钮做了上面四个操作时,需要播放什么动画。点击Auto Generate Animation 自动创建动画按钮,会弹出一个保存弹窗,用来保存动画的控制器。找到我们需要的位置(项目的某个资源文件夹),直接点击保存


保存Controller

在Hierachy面板中选中按钮,点击Window - Animation(快捷键 Ctrl + 6)打开动画编辑面板


修改动画

此时都是默认没有添加动画,我们点击Add Property,弹出来的面板中包含的是这个Button物体上面的所有组件,由于我们需要做的是缩放,而缩放是RectTransform的Scale属性,因此我们选中RectTransform的Scale右边的加号将Scale属性添加到Animation面板中

添加属性

点击Animation面板的红点按钮(启用录制按钮),表示开始录制动画,接下来的操作都会被记录到时间轴中。

时间轴

可以看到当我们添加了Scale属性后,系统自动给我们在首尾即时间0跟时间1的位置分别创建了两个关键帧。表示这个动画的时长为1s。我们将指针拨动到后面的关键帧处。在Button的Inspector面板中将Scale修改为0.8,如果对时长不满意,直接框选红色的一排关键帧进行拖拽即可调整时长

修改Scale

回到Animation面板,点击红点按钮(退出录制按钮)取消录制。此时运行游戏,点击这个按钮已经会缩放了

但是如果一直按住按钮不松开,会发现按钮一直在重复缩放。这是因为我们没有关闭动画的循环属性


Controll

选中Button,在其Inspector面板中找到自动添加的Animator组件,这个动画组件是我们创建动画的时候自动添加的。点击Controller,可以在Project面板中找到我们创建的Controller

Controller

点击我们的按钮Controller,可以看到底下有四个动画片段AnimationClip,找到我们的Pressed,选中。在其Inspector面板中可以看到有个LoopTime复选框。勾选表示寻访,我们取消勾选


AnimationClip

运行游戏,再次点击按钮,就不会无限循环播放Pressed动画了

后面再创建按钮,如果也需要使用缩放动画,则直接选中按钮,在其Inspector面板中点击AddComponent - Miscellaneous - Animator添加Animator动画组件,然后将之前创建好的动画控制器Button.Controller直接拖入,再修改Button组件的Transition属性为Animation即可。不需要重新再创建一个动画控制器

上一篇下一篇

猜你喜欢

热点阅读