美文网首页
简单实例

简单实例

作者: 侠者大屁屁 | 来源:发表于2021-09-23 09:35 被阅读0次
  • 背景随文本长度适配
    在Inspector面板空白处右键 - UI - Canvas新建一个Canvas。选中Canvas,右键 - Create - UI - Image,创建一张Image图,同样的方法在Image下面新建一个Text
层级结构

修改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或者其他合适的值即可

  • 按钮点击缩放
    在Inspector面板的空白处点击右键 - UI - Button创建一个Button,在其Inspector面板中找到Button组件并修改Transition属性为Animation
Button

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

  • Normal 可以正常使用时 (Interactable 勾选)
  • Disabled 禁用时 (Interactable 取消勾选)
  • Pressed 按下或者点击时
  • Highlighted 鼠标滑动到按钮上面时

我们需要针对这几个属性做动画,即对按钮做了上面四个操作时,需要播放什么动画。点击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即可。不需要重新再创建一个动画控制器

相关文章

  • 简单实例

    背景随文本长度适配在Inspector面板空白处右键 - UI - Canvas新建一个Canvas。选中Canv...

  • React事件传递

    事件传递: 父传子、子传父; 父传子 简单实例: 子传父 简单实例: 同级组件传值 简单实例: 方法一: 通过父...

  • springmvc+spring+jdbc整合

    简单实例 实例2 杂项1 杂项2 杂项3 实例4

  • 函数

    简单函数格式 定义 调用函数 传参函数格式: 传参数 定义 注意 重点 实例(简单) 实例(传参) 实例函数(调用...

  • axios实例和实例的MVC结构的优化

    axios简单实例 实例的MVC 用类改写过

  • Threejs深入理解(一)骨骼动画

    简单骨骼实例

  • vue简单实例

    Vue.js是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大...

  • 爬虫简单实例

    开发爬虫的步骤: 1.确定目标:(以百度百科为例子) 2.分析目标(抓取数据的策略,网站会不定期升级,所以定向网站...

  • ListView简单实例

    当我们要做一些列表 我想ListView是再适合不过的组件了 在RN里面算是一个核心组件,用于高效地显示一个可以垂...

  • MarkDown简单实例

    引用一篇原文地址:http://blog.csdn.net/renfufei/article/details/41...

网友评论

      本文标题:简单实例

      本文链接:https://www.haomeiwen.com/subject/krlqzktx.html