Unity 从零开始做游戏

1. 场景搭建之瓦片地图

  1. create -> 2D object -> TileMap
  2. 这时场景视图中会出现一个Grid/TileMap GameObject 点击TileMap 看到一堆网格,这就是我们需要作画的位置了
  3. Window ->2D -> Tile palette 调出Tile palette 面板,create new palette 然后将美工给的图拖入到这个面板中,就是我们刷场景用的素材了,将其中素材选中,用刷子在场景中刷出你喜欢的场景吧

2. Layer 图层关系

  • 当你将background这个GameObject打开的时候,会发现background 出现在刚才制作的场景前面。这个时候就需要调整sorting layer 的层级关系。越是下面的层显示在场景中就越靠前。
  • add layer 增加 background 和 frontground 两个层级

3. 让人物动起来

  • Project Settings -> input -> 查看左右,或者上下移动的代号分别是什么
Input.GetAxis("horizontal") 返回值 -1~0~1 之间的数 
rb.velocity = new Vector2(horizontalFloat * speed * Time.deltaTime, rb.velocity.y); 刚体的移动
  • Update() 和 FixedUpdate() 区别
    Update() :按照帧率进行刷新 比如fps=60 说明1秒钟刷新了60次
    FixedUpdate: 按照固定时间去刷新这个函数 默认FixedTime = 0.02s

4. 给人物添加动画

  1. 给人物 add 组件 Animator
  2. 新建人物的动画文件夹 Animation ,在文件夹中添加Animator 拖拽赋值给第一步中添加的组件Animator
  3. Window -> Animation 调出Animation 窗口 ,最重要一点,需要把鼠标点击你的player GameObject创建新的Animator,如果单纯的在文件夹中create Animation 是添加不了任何图片的. 最后将美工给的帧图片拖拽到Animation 窗口 调整动画速度.
  4. Window -> Animation 调出Animator 窗口
    image-20210312112821520
  5. 各种状态的切换是根据Parameters 的值来的。设置Parameters 的值是float 当 running 的速度大于0.1时,切换到跑步的状态
  6. 状态的切换
animator.SetBool("***",defeault value);
  1. 碰撞检测+layerMask 人物的碰撞检测 将地面的Layer 设置为ground 然后利用coll.isTouchingLayers(Layer) 判断是否与地面碰撞

5. 跑动时bug 解决

原因是因为加的碰撞器是矩形边框的collider ,然后地面也是矩形边框的collider.所以模拟现实中的地面和人类行走关系,会有时候小石头或者什么阻碍物挡住真人。又因为Freeze Z轴被勾选,所以就会造成跑不动的假象。解决方法是将人物上半身用box collider 下半身就有一个circle Collider 。

6.人物跟随相机

  1. 使用插件cineMachine,packageManager 中搜索cinemachine 并导入
  2. 设置Follow 为player
  3. 为cinemachine相机添加扩展 collider 为了不让人物跳跃时超出一定的范围

7.物品收集

  1. 添加樱桃动画(和第4步一样,添加动画)
  2. 设置物品的tag 为 Collection 根据碰撞体的Collider.tag 来判断是否碰撞到了要被收集的物体上,如果碰撞到了就Destory掉这个GameObject

8. bug 解决

  1. 人物跳跃撞墙后不会掉落问题
  • 问题产生原因: 人物跳跃时候collider向右会有一个加速度,然后会产生摩擦力。
  • 问题解决方法:为人物新建一个材质,将材质的摩擦力设置为0
  1. 人物多段跳跃的问题
  • 解决方案1:人物只要在空中,y轴方向就有一个速度,所以当y轴速度为0 的时候 才能跳跃
  • 解决方案2:跟之前变化下落状态一样,当人物接触到地面的时候,变化为静止状态,这里也可以用这个条件

9. UI 显示 收集数据

使用UGUI 创建Text 数字在左上角,编写脚本改变数字的数值
这部分没什么好记录的,比较简单

10. 游戏敌人的添加,添加敌人AI

添加青蛙敌人AI,在青蛙左右两边分别加上一个gameobject 作为左右边界点。让青蛙只能在这两个object 中间来回移动。

猜你喜欢

转载自blog.csdn.net/woshihaizeiwang/article/details/115217440
今日推荐