认识DoTween插件以及通过UGUI制作血条
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认识DoTween插件以及通过UGUI制作血条相关的知识,希望对你有一定的参考价值。
参考技术A 文章内容:一、认识DoTween插件
二、通过UGUI制作血条的三种方法
认识DoTween:
Using DG.Tweening;//引用DoTween插件的命名空间
脚本:
1.DoTween Animation
2.DoTween Path
类:
1.DOTweenAnimation(补间动画)
属性:设置是否自动销毁:补间动画对象.autoKill
更改动画持续时间:补间动画对象.duration
更改动画的延时播放时间:补间动画对象.delay
更改动画的循环次数:补间动画对象.loops
更改动画的循环类型:补间动画对象.loopType
方法:向前播放动画:补间动画对象.DOPlayForward();
向后播放动画:补间动画对象.DOPlayBackwards();
通过ID名称播放动画:补间动画对象.DOPlayById(ID名称);
2.Tweener
DoTween创建的动画,默认都是Play状态,而且播放完毕之后会自动销毁,
但是有很多动画需要不断的循环次数,
所以说按默认的话,就需要不断的创建和销毁动画,
这样就造成了内存的消耗和资源的浪费,我们要避免这种情况。
DoTween为我们提供了一个类,方便我们对动画的状态和属性进行修改,这个类就是Tweener.
方法:
移动:Tweener对象=Transform对象.DOMoveX(X方向移动的距离,持续播放的时间);
延迟:Tweener对象.SetDelay(延迟播放的时间);
设置播放(运动)方式:Tweener对象.SetEase(Ease.枚举成员名);
暂停:Tweener对象.Pause();
//可以分开写,也可以一次写完
Tweener对象=Transform对象.DOMoveX(距离,持续时间).SetAutoKill(true或false).SetEase(Ease.枚举成员名).SetLoops(循环次数,循环类型.枚举成员名);
实例:通过点击打开按钮、关闭按钮播放图片动画(OnEnable方法、OnDisable方法、Tweener类、Button类,使用标志位)
3.Sequence(队列)
实例化一个Sequence:Sequence 对象名= DOTween.Sequence();
方法:
往队列中添加动画:队列对象.Append(添加的动画);
队列延时播放动画:队列对象.PrependInterval(延迟时间);
往队列中插入动画:队列对象.Insert(插入的位置,插入的动画);
实例:制作血条(通过克隆、动态加载、父子物体、坐标转换、显示隐藏)
方法一:通过静态加载:拖游戏对象给脚本进行实例化;
方法二:通过动态加载:使用Resources.Load<后面的预设体类型对应>("预设体的路径") //此方法默认状态下是在Resources目录下查找预设体!!!!
预设体必须在Resources的目录下才能被找到,否则会报错!!!
以上两种方法,克隆的血条需要单独放在另一个画布(Canvas)中存放;
在调整血条大小的时候,不要直接调整血条的宽高,很容易出错,最好是调整它的缩放;
画布的渲染模式选择摄像机渲染屏幕空间,方便观察,可以显示血条(2D),也可以显示方块(3D物体)
方法三:画布的渲染模式选择世界空间渲染模式,把画布也当作一个游戏对象,分别把每个画布作为每个方块的子物体,并把每个方块的血条当作每个画布的子物体,通过画布显示每个方块的血条信息,使用LookAt方法写一个让带有血条的父的物体画布朝向摄像机的位置
unity3d中怎样制作血条跟随角色运动
参考技术A statelight是你要实例的物体么? 这个物体不能直接控制,而要用一个变量保存,比如在声明一个全局变量 GameObject sLight; 然后在碰撞时 sLight= Instantiate (statelight, Planee.transform.position, Planee.transform.rotation) as GameObje... 参考技术B 这几个视频都是血条跟随角色移动的球型血条制作视频
https://www.bilibili.com/video/BV15g411B7fr/
普通3d血条制作两种方法的视频
https://www.bilibili.com/video/BV1E8411e7uY/
和
https://www.bilibili.com/video/BV16K411Q79B/
以上是关于认识DoTween插件以及通过UGUI制作血条的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D中UGUI不使用DOTween制作渐隐渐现效果