unity吃豆人小游戏,迷宫实现

简介: unity吃豆人小游戏,迷宫实现

昨天已经写过一篇unity小游戏了,今天再来写另外一篇吃豆人。

展示效果\
在这里插入图片描述

这个小游戏主要是做了主角的移动,场景切换,碰撞检测。首先我们需要把迷宫做好。这里我只是做了个demo,所以只做了两个迷宫,有就是两个等级。

1主角移动

         int n = 6;
        float H = Input.GetAxis("Horizontal") * Time.deltaTime * n;
        float V = Input.GetAxis("Vertical") * Time.deltaTime * n;
        this.gameObject.transform.Translate(H, V, 0);//移动函数

这里面使用了摇杆进行操作,H和V是分别代表横向和纵向的操作。Translate就是游戏主体的移动。

2场景切换

                       a.transform.localPosition = new Vector3(-100F, 10.3F, -0.87F);
                      b.transform.localPosition = new Vector3(0, 0, -0);
                      this.gameObject.transform.localPosition = new Vector3(-22.1F, 10.3F, -0.87F);

大家仔细看gif图片,我level1和level2上面的切换非常流畅。因为我并不是替换scene。对于一些小游戏来说,尽量不要随便用scene的切换,不然会感觉有卡顿。我这里只是做了位置的主体转变而已。当然一般这些我们都可以用配置表进行配置。如果不是大型场景的转换,都没有比较切换scene这个还是很重要的。

3碰撞检测

    //碰撞函数
    void OnTriggerEnter(Collider other)
    {

    
          //碰到的是球
          if (other.name == "ball")
          {
              Destroy(other.gameObject);
              print(ballcount);
              ballcount -= 1;
    
          
              if (ballcount == 0 )
              {
                  if (guanqia == 1)//下一关
                  {
                      a.transform.localPosition = new Vector3(-100F, 10.3F, -0.87F);
                      b.transform.localPosition = new Vector3(0, 0, -0);
                      this.gameObject.transform.localPosition = new Vector3(-22.1F, 10.3F, -0.87F);
                      ballcount = 3;
                      //关卡+1
                      guanqia = guanqia + 1;
                  }
                  else//赢了
                  {
                      print("赢了");
                  }
    
              }
      
          }
          //碰到的是墙
          else
          {
              //返回原来的位置
              this.gameObject.transform.localPosition = new Vector3(-22.1F, 10.3F, -0.87F);
          
          }
      }

碰撞函数我们这里也是需要深入了解的OnTriggerEnter(Collider other)。这个是触发器碰撞检测。other是代表碰到的其他东西。这里面有两种情况,这里要是碰到小球就算分数,进入下一关。要是碰到的是墙,就要回到原来的位置。这个脚本是直接挂在主角身上的,是对主角的碰撞检测。

这个是一个比较基础简单的游戏实例,有兴趣学unity的话,可以关注公众号:诗一样的代码,留言给我,我教你系统地学。

相关文章
|
5月前
|
图形学
Unity小游戏——迷你拼图
Unity小游戏——迷你拼图
110 1
|
5月前
|
图形学
Unity小游戏——使被砍中的怪物四处飞散
Unity小游戏——使被砍中的怪物四处飞散
|
5月前
|
图形学
unity小游戏——得分高低的判定
unity小游戏——得分高低的判定
|
5月前
|
图形学
Unity小游戏——武士和怪物的碰撞检测
Unity小游戏——武士和怪物的碰撞检测
|
5月前
|
图形学
Unity小游戏——怪物出现模式的管理
Unity小游戏——怪物出现模式的管理
|
5月前
|
机器学习/深度学习 算法 图形学
Unity小游戏——无限滚动的背景的改良
Unity小游戏——无限滚动的背景的改良
|
5月前
|
算法 图形学
Unity小游戏——武士击杀小怪兽(无限滚动的背景)
Unity小游戏——武士击杀小怪兽(无限滚动的背景)
|
图形学
Unity实现2D小游戏
Unity实现2D小游戏FirstGame2D(Sunny Land) 一、游戏说明 本游戏为作者的第一个实验的2D小游戏 实现效果: (1)简单的UI界面以及触发按钮、滑动按钮事件 (2)通过按钮与按键实现场景的切换 (3)通过代码实现动画效果的切换(跳跃、蹲下等) (4)碰撞体以及触发器实现消灭敌人、收集物品、地面检测 (5)相机场景与背景运动差,实现场景与人物的立体效果,达到较好的视觉效果 (6)SoundMananger实现场景音乐的管理
190 0
Unity实现2D小游戏
|
图形学
unity吃豆人小游戏,迷宫实现
unity吃豆人小游戏,迷宫实现
|
5月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
50 0