一个伟大的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供参考
解救机器人动画
拾取草莓特效
绘制角色血条UI
设置角色命中、行走、受伤音效
NPC动画以及文本框
打包文件
查看构建的文件目录
启动Ruby大冒险
演示视频(文件较大):点击访问
好啦~暂时就到这里了!
评论区