目 录CONTENT

文章目录

Unity学习Ruby大冒险笔记

不争
2024-01-02 / 0 评论 / 0 点赞 / 16 阅读 / 5657 字

一个伟大的Unity项目(Ruby大冒险)

解决角色撞击会发成抖动(改为刚体移动)

让摄像头跟随移动

首选下载Cimemachine,踩坑记录:下载高版本的cimemachine会缺少组件,应该本人装的2018版本packages下面没有Timeline所以会报错,下载2.29版本即可

然后在导航栏找到刚才安装的cimemachine创建一个2D的相机,然后将ruby拖到follow即可地图跟随角色移动

设置水面不让移动角色进入

先将Tilemap添加一个Tilemap Collider 2D 然后所以添加的都会变成障碍,然后再将除了水面的障碍如地砖等取消碰撞。

将碰撞类型改为None

碰撞类型设置

合并碰撞刚体,然后将刚体设置为静态避免发生物理作用

静态刚体

创建一个游戏边界

游戏边界

然后edit collider设置四边形碰撞,然后再将这个拖动到相机碰撞刚体,is Trigger一定要勾选,否则会将角色挤出去

添加生命道具草莓设置碰撞体和触发器

约束玩家的生命值

增加陷阱编写持续掉血脚本

给草莓加上动画

Ctrl+6快捷键打开Animation设置每帧x,y轴值达到缩放动画效果

给野怪加上移动动画

设置控制器

        anim.SetFloat("moveX",moveDirection.x);
        anim.SetFloat("moveY",moveDirection.y);

给角色加上状态移动动画

1、给主角加上控制器

2、设置角色朝向移动控制器

        Vector2 moveVector = new Vector2(moveX, moveY);
        if (moveVector.x != 0 || moveVector.y != 0) {
            lookDirection = moveVector;
        }
        anim.SetFloat("Look X", lookDirection.x);
        anim.SetFloat("Look Y", lookDirection.y);
        anim.SetFloat("Speed", moveVector.magnitude);.y);

给角色加上发送子弹效果

        //======按下J键 进行攻击===
        if (Input.GetKeyDown(KeyCode.J)) {
            GameObject bullet = Instantiate(bulletPrefab, rbody.position, Quaternion.identity);
            BulletController bc = bullet.GetComponent<BulletController>();
            if (bc != null) {
                bc.Move(lookDirection, 300);
            }
        }

击中机器人进入修复动画

     //碰撞检测
    void OnCollisionEnter2D(Collision2D other) {
        EnemyController ec = other.gameObject.GetComponent<EnemyController>();
        if (ec != null) {
            ec.Fixed(); //修复敌人
        }
        Destroy(this.gameObject);
    }

添加发射动作

anim.SetTrigger("Launch");//播放攻击动画

切割图片添加烟雾特效

踩坑项

学校的unity版本Alpha Blended在Mobile的Particles下

后面的晚上的没保存好,文件丢失,心疼~~还好图片还在图床存着,下面就放一下完成的效果,后续代码会放到GitHub供参考

解救机器人动画

UnitynN1IeIe4mG

拾取草莓特效

UnityypDAJRaTGx

绘制角色血条UI

UnitytkYPWNp9bO

设置角色命中、行走、受伤音效

Unityk6xIB4EXLh

NPC动画以及文本框

UnityyrkMdx5BTl

打包文件

查看构建的文件目录

启动Ruby大冒险

演示视频(文件较大):点击访问

好啦~暂时就到这里了!

0

评论区