游戏开发 | 利用补间动画制作UI淡入淡出效果

游戏UI表现经常会有各种各样的出场入场表现,比如这里看到的淡入淡出效果,现阶段我们能够使用补间动画来达成这一目的。

1、首先我们新建一个UI并导出其脚本
 


2、然后我们创建一个名为Fade的代码
 


在代码中,我们继承于之前UI生成的代码Fade_generate,利用补间动画修改UI的canvas节点的renderOpacity值


import Fade_Generate from "./ui-generate/Fade_generate";

export default class Fade extends Fade_Generate {

    /** 
     * 构造UI文件成功后,在合适的时机最先初始化一次 
     */
    protected onStart() {
        //设置能否每帧触发onUpdate
        this.canUpdate = true;
        this.layer = UILayerMiddle;

        if(SystemUtil.isServer()){
            return
        }

        this.close.onPressed.add(()=>{
            // 补间动画 时间持续 500毫秒 透明度从1到0
            new Tween({a: 1}).to({a: 0}, 500).onUpdate((val)=>{
                this.rootCanvas.renderOpacity = val.a
            }).start().onComplete(()=>{
                // 结束后关闭UI
                UIService.hide(Fade)
            })
        })

        Event.addLocalListener("Fade", ()=>{
            // 补间动画 时间持续 500毫秒 透明度从0到1
            new Tween({a: 0}).to({a: 1}, 500).onUpdate((val)=>{
                this.rootCanvas.renderOpacity = val.a
            }).start().onStart(()=>{
                // 一开始就显示UI
                UIService.show(Fade)
            })
        })

    }

    /**
    * 每一帧调用
    * 通过canUpdate可以开启关闭调用
    * dt 两帧调用的时间差,毫秒
    */
    protected onUpdate(dt :number) {
        TweenUtil.TWEEN.update();
    }
}


关于补间动画,可以参考教程的这一章:
Tween - 补间动画 | 教程 (ark.online)

3、随后在DefaultUI中添加本地事件控制UI的显隐


InputUtil.onKeyDown(Keys.O, ()=>{
    Event.dispatchToLocal("Fade")
})

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值