一、认识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方法写一个让带有血条的父的物体画布朝向摄像机的位置
用DoTween基本的DoPath(...)方法,来做,然后实时改变 timeScale值例子:
TweenerCore<Vector3, Path, PathOptions>_TC_Path = transform.DOPath(_WayPoints, _Duration, _PathType, PathMode.Full3D, 10, _Color).SetAutoKill(_IsAutoKill)
_TC_Path.timeScale = 1.5f //实时改变这个值就可以了(PS:这个值与系统的是分开的,不会影响)
//注释: _WayPoints 是路径点数组 Vector3[] ,可以用DoTweenPath组件先拉出路径,再将点复制出来; 其它的参数就不用多说了吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)