拾荒者Unity2D游戏开发流程笔记
来源:互联网 发布:mac 恢复分区没了 编辑:程序博客网 时间:2024/04/28 04:01
1 拖入素材
动画和状态机分别整理进Animation和animatorcontroller文件夹
将敌人攻击动画,主角攻击、受伤动画拖入状态机
为各动画之间设置Trigger.
2 地图管理器,随机地图的生成(mapManager脚本控制)
private Transform mapHolder; mapHolder = new GameObject("Map"(父物体名称)).transform .transform.SetParent(mapHolder);
生成父物体,管理随机生成的物体
墙,地板的生成
用数组存放随机生成选用的图片//public GameObject[] name;在视图面板里拖拽
rows,cols=10,行数,列数
for循环遍历
for(int x = 0;x<cols;x++){for(int y = 0;y<rows;y++)}
用if判断墙生成的位置,生成墙数组中的一个随机索引,else生成墙壁
障碍物的生成
private List<Vector2> positionList = new List<Vector2>(); positionList.Clear(); for(int x= 2;x<cols-2;x++){for(int y = 2;y<rows-2;y++)}{positionList.Add(new Vector2(x,y);)}
for循环遍历,然后再将遍历的坐标存进List中
障碍物个数,随机一个最小值到最大值(自己设置)
positionList.Count List中的个数
随机一个列表的索引赋值给一个位置,再.RemoveAt()删除该索引
随机获取一个障碍物的图片
为地板设置Layer放在障碍物的下面
食物生成 2-5
for 循环遍历食物数量,为其随机设置位置,随机从贴图数组获取贴图
创建敌人 level/3
for 循环遍历敌人数量,为其随机设置位置,随机从贴图数组获取贴图
创建出口
创建主角
3 封装一下代码
4 完善动画状态机
HasExitTime(动画播放完毕后才进行切换)
Durationtime 0 (切换的时长)
5 主角移动的控制 (playerController脚本控制)
通过刚体控制
添加碰撞器
Input.GetAxisRaw(“Horizontal”) 该方法返回一个横向的向量
rigidbody2d.Moveposition(rigidbody2d.position+targetpos*speed*Time.deltaTime)
6 主角对墙体的攻击
为外墙和障碍物设定碰撞器
RaycastHit2D name = Physics2D.Linecast(startposition,startposition+vector2(h,v)//目标方向)
name.transform 为null,则没有碰撞到//禁用主角自己身的collider(监测碰撞时)//`collider.enable = false;`
switch(hit.collider.tag){ case"tag1":break; case"tag2":break; }
单独用一个bar脚本控制墙体的收到攻击,为墙体设置血量,
hit.collider.SendMessage(方法名)
收到攻击时Sprite设置图片
播放主角攻击的动画
animator.SetTrigger("name")
7 主角吃食物
为食物设置触发器(主角可以吃,僵尸不能吃)
GameManager脚本里添加增加食物和减少食物的方法
8 控制敌人的移动
通过刚体控制
offset.magnitude > 1时两物体相邻
Mathf.Abs()取绝对值
判断敌人与主角的偏移决定敌人的移 动
敌人每次要么攻击要么移动
在GameManager里写敌人移动的方法用if判断每过1秒敌人走一步
9 控制敌人的攻击
得到敌人动画组件
animator.SetTrigger(“name”)
10 食物数量UI显示
初始化UI内容
11 控制游戏的失败
食物小于0,主角死亡,if语句判断不进行移动操作。
UI显示进行修改
12 胜利判断
监测主角是否到达终点,每次移动监测 主角坐标是否等于终点坐标
到达终点,以及食物吃完,主角都不应该再移动
13 关卡的加载
SecneManager.LoadScene(SceneManager.GetActiveScene().name//重新加载本关卡 OnLevelWasLoaded(int scenelevel){ level++ }
DontDestroyOnLoad()//关卡加载时不销毁GAMEMANAGER,并且不创建新的GAMEMANAGER
在摄像机上添加LOADER脚本,实例化GAMEMANAGER(当INSTANCE等于空时)每次加载关卡都初始化
14 天数的UI
Invoke(方法,int(经过几秒调用)
15 给游戏添加音乐
- 拾荒者Unity2D游戏开发流程笔记
- Unity2D游戏开发案例-Roguelike拾荒者
- 【SIKI】_06_Unity2D游戏开发-拾荒者笔记
- 拾荒者开发笔记(随手)
- 拾荒者2D开发笔记
- <Unity笔记>Unity2D游戏的平滑旋转
- Unity2D游戏开发基础教程1.2 项目、资源和场景
- Unity2D游戏开发基础教程1.2项目、资源和场景
- unity2d游戏开发大坑之图集打包
- Unity2d游戏开发:UGUI 与 Spine 的完美结合
- Unity2D游戏开发-1.认识2D相机
- AX开发拾荒
- 拾荒者心得
- 拾荒
- 2.6 Unity2D平台开发
- Unity2D平台开发
- 工作流程导入到Unity2D
- 游戏开发流程与思想学习笔记(持续更新)
- 推荐学习(变态广告设计)
- js -- 设置滚动条随着输入内容滚动(在模拟微信表情输入的时候遇到的)
- 反射机制:类中方法及成员变量赋值
- 论文导读:面向卷积神经网络的卷积核冗余消除策略
- Android性能优化典范
- 拾荒者Unity2D游戏开发流程笔记
- java处理emoji表情
- 哲学家就餐
- mysql数据分页
- Android Studio 安装和 Android 项目创建
- 观察者模式(广播机制)
- 全局变量和局部变量的比较
- Android Studio导入android源码技巧(源码无需编译即可导入)
- linux下python安装pyzmq模块