我们打开上一篇10怪物受击的动画事件的项目,
本章要做的事情如以下几点:
1.更换场景后功能仍能实现
2.主角F键释放技能改为鼠标右键释放技能
3.背包按钮的美工优化
4.更换怪物
首先我们先打开资源商店找到免费场景
添加资源
导入资源
找到导入资源包的新场景后双击
创建一个Res文件夹
将Demo_Objects对象拖拽至Res文件夹作为预制体
回到我们的场景
将Plane隐藏
将新场景预制体Demo_Objects拖拽至Land作为子物体
调节场景的Y轴与主角怪物相适应
将Land设置为非静态
再将Land设置为静态,这样就将所有子物体场景都设置成了静态
层级设置为Land
清理父物体导航
烘培Bake
运行项目即可实现更换场景
接着我们将键盘的按键F释放技能换成鼠标右键释放
首先调节新输入系统的Actions的F下的配置设置 - 此操作控制按下鼠标右键的主角释放技能的动画设置
接下来更改释放技能时的按键改为鼠标右键释放
此时鼠标右键即可实现释放技能
接下来对右侧背包按钮的UI进行美化
点击2D双击背包按钮对象
创建一个Art文件夹用来装UI图片
将以下资源放进Art文件夹
将图片资源设置为精灵模式后应用
拖拽
调节字体颜色与大小
对字体增加一个描边
此时背包按钮已美化完成,背包界面在下几篇文章会进行优化。
接下来更换怪物
切回3D视角
这只怪物熊模型在下几篇文章会当成坐骑,所以我们需要在资源商店中再找一个免费怪物模型
将资源Prefab选一个模型拖拽至场景中
完全解压缩
调整缩放
创建一个动画状态机MonsterKingAC
双击进入动画状态机
设置动画状态机
因为这个免费资源没有死亡动画,所以我们用它的跳跃动画作为死亡动画,也就是说当怪物被击中血量低于0时播放跳跃一下后消失。
对King对象增加一个动画状态机
将新建动画状态机MonsterKingAC拖拽至框选栏
挂载脚本
我们将MonsterBear重命名为MonsterKing
此时脚本里的命名也需要更改为MonsterKing
增加刚体组件
增加重合面碰撞器组件
因为我们的MonsterKing代码中写了动画事件的函数所以我们需要在King对象的动画控制器的动画上增加动画事件
当我们双击动画不能出现Animation时,说明这个是个动画片段,我们可以看它的父级
如下图Slime_Anim选中它之后在右侧动画单元Clips下找到Dmage动画
然后再添加动画事件
运行项目 - 怪物King受击后会有击退及血量减少的效果
最后我们将怪物King与主角PlayerNomal都放进预制体在运行项目时生成
创建脚本LoadResourcesRun.cs
using UnityEngine;
public class LoadResourcesRun : MonoBehaviour{
void Awake(){
if (GameObject.FindGameObjectWithTag("Player") == null){
GameObject loadedPlayer = Resources.Load<GameObject>("PlayerNormal");
Instantiate(loadedPlayer, new Vector3(0f, 0, 0f), Quaternion.identity);
GameObject loadedMonsterKing = Resources.Load<GameObject>("King");
Instantiate(loadedMonsterKing, new Vector3(-10f, 0, 0f), Quaternion.identity);
}
else
return;
}
}
将脚本挂载至Land场景对象上
运行后即可从资源文件夹中加载生成主角与怪物King
本篇做了前十篇文章的项目优化,接下来还需做以下内容:
1.怪物被击退时显示击退图标的效果
2.怪物UI信息血量显示(笼)
3.怪物死亡特效
4.怪物死亡掉落物品
5.掉落物品拾取后的转移与穿戴
6.异步传送转换场景
7.目标点巡航功能
以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。
具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》