详细的制作步骤及流程截图

  1. 新建文件夹,取名Sprites,在该文件夹中存放美术资源。检查图片的Texture Type 为Sprite(2D and UI)。之后将图片拉入场景当中,并整合在Map中。注意设置ground的层(order in layer)为0,Hole的层(order in layer)为1。


    调整摄影机的Size为3.76左右。
    (可通过滚轮直观的调节也可通过计算的方法得出:752/2(高度的一半)=376 376/100(分辨率)=3.76)
    由于场景光线不足,故加一个Directional light。
    此时游戏场景构建完成,保存该场景为1。

  2. 新建文件夹Script。在文件夹中添加C#脚本命名为S1。(脚本如下)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S1 : MonoBehaviour {void Start () {}void OnMouseDown(){Debug.Log("you hit me");//检测是否点击Destroy(gameObject);//销毁游戏对象}
}

将游戏对象Gophers添加到游戏场景中,设置其层为1, Add Component添加一个包围盒Box Collider,将脚本S1拉到对象上,此时点击播放检测程序是否有误。鼠标点击游戏对象,左下角出现you hit me字样并且游戏对象消失。


3. 此时我们为了实现地鼠1消失后出现被击打后的效果,将Gophers_Beaten拖到场景中,其位置为(0,0,0)将代码S1进一步修改为S2。同时将Gophers_Beaten添加到Prefab2上。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S2 : MonoBehaviour {public GameObject m_prefab2;// Use this for initializationvoid Start () {Destroy(gameObject, 2f);//2秒后自动销毁}void OnMouseDown() {Debug.Log("you hit me");Instantiate(m_prefab2, transform.position, Quaternion.identity);//在当前位置产生地鼠被打击到的动画Destroy(gameObject);}
}


地鼠Gophers_Beaten同时需要在0.5秒后自动消失,新建S3脚本,拖到Gophers_Beaten上。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S3 : MonoBehaviour {// Use this for initializationvoid Start () {Destroy(gameObject, 0.5f); //0.5秒后自动销毁}// Update is called once per framevoid Update () {}
}

我们需要新建文件夹取名为Prefabs,将地鼠地鼠Gophers和地鼠Gophers_Beaten同时拉成预制体,点击运行,此时已经实现地鼠被击打后的整个动画效果。

4.新建空物体,改名为CreateTarget,并reset它的位置,添加新的脚本CreateTarget。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CreateTarget : MonoBehaviour {public GameObject m_Target;void Start () {//Create();InvokeRepeating("Create", 0, 1);//指定间隔1s调用函数}void Create() {Vector3 pos = Vector3.zero;int id = 0;id = Random.Range(1, 10);//随机数的生成if(id==1)pos = new Vector3(0, 0, 0);if (id == 2)pos = new Vector3(2, 0, 0);if (id == 3)pos = new Vector3(-2, 0, 0);if (id == 4)pos = new Vector3(0, 1, 0);if (id == 5)pos = new Vector3(2, 1, 0);if (id == 6)pos = new Vector3(-2, 1, 0);if (id == 7)pos = new Vector3(0, -1, 0);if (id == 8)pos = new Vector3(2, -1, 0);if (id == 9)pos = new Vector3(-2, -1, 0);Instantiate(m_Target, pos, Quaternion.identity);//实例化新的对象}
}

将地鼠Gophers预制体拖到Target上。

4. 为地鼠Gophers和地鼠Gophers_Beaten分别添加不同的音效。



以上就全部制作完成了。
(所需资源可以去中国大学MOOC 自行下载)

游戏制作的问题以及解决方法

  1. 将图片拉入场景之后,发现图片不能完整地显示在屏幕中。
    可通过设置分辨率来解决该问题:
    右下角放大图片可以发现ground图片的分辨率是1280*725。所以需要建造与图片分辨率相同的场景,在Game窗口点击Free Aspect,在最后一项点击+号,添加名为“打地鼠”的新标签并设置分辨率。


2.将地鼠Gophers和地鼠Gophers_Beaten同时拉成预制体的时候,点击运行发现无法跳转成被击打时的动画,检查预制体后发现地鼠Gophers_Beaten没有被拖动到prefab2上,加上后效果运行成功。

收获:

  1. 销毁对象使用OnMouseDown()函数。
  2. 碰撞器使用Box Collider。
  3. 对象鼠标点击触发条件:对象必须有碰撞器,且其大小必须与对象一致。
  4. 预制体的制作及实例化。
  5. 实例化一个地鼠,使用InvokeRepeating()函数,随机在九个位置生成预制体。

Unity 2D《打地鼠》游戏自学总结相关推荐

  1. UNITY 2D入门基础教程 (一)

    如果用以前版本的Unity做2D游戏,虽然能做,但是要费很多周折. 比如你可以将一张纹理赋予一个"面片"网格,然后用脚本控制它的动画调整它的位移.如果你要使用物理引擎,那么还要将这 ...

  2. Unity 2D入门基础教程

    作者:Christopher LaPollo 翻译:Xiaoke 写在前面的前面的话:首先感谢原作者和译者,这是一篇非常棒的文章! 写在前面的话:转载肯定会留原文链接,作者的署名,这是毋庸置疑的.而我 ...

  3. Unity 2D 游戏开发 官方视频学习顺序

    unity2D的官方tutorial上已经有了不少的教程视频,都看一遍的话最起码也知道unity能干什么了. 自学这段时间里我翻译不少,之前也发过,都放到b站了,基本都是1080p的,而且压制后文件不 ...

  4. Unity 创建2D平台游戏开发学习教程

    了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建 ...

  5. 学习用C#在Unity中创建一个2D Metroidvania游戏

    学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...

  6. 用Unity的视频广告创建2D动作游戏 Create Action 2D Game With Video Ads In Unity

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:27场讲座(4h 19m) |大小解压后:2.35 ...

  7. Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小:15.4 GB |时长:32h 55m Un ...

  8. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  9. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  10. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

最新文章

  1. [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题
  2. DSP程序中段的定义和作用
  3. python创建新工程_个人博客二|创建项目
  4. 成功的前提,35岁前必须做好的十件事
  5. 【017】◀▶ C#学习(九) - ADO.NET
  6. PHP里的“夏令虫”
  7. Flink读写Mysql(Java版)
  8. Layout Management
  9. 什么是大数据挖掘技术
  10. filezilla server 下载、安装、配置教程(包含新版使用配置)
  11. RGB-D相机原理与选型
  12. C++程序设计语言练习4.2 茴字的几种写法
  13. 海贝音频384khz_海贝音乐app下载_海贝音乐安卓版下载[音乐播放器]-下载之家
  14. 使用LibreOffice实现word转pdf(python代码)
  15. 查看Win7电脑密钥期限
  16. 锚点的作用是什么?如何创建锚点?
  17. #C语言[Basic I/O] A-B
  18. HTML5吃豆豆游戏开发实战(一)使用Canvas绘制游戏主角
  19. CSDN的markdown的KaTex数学公式
  20. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:08 自然语言处理中的机器学习方法

热门文章

  1. 做副业月薪10K+,工作效率翻倍!Python是个什么宝藏?
  2. 基于Vue.js 的天天影视云视听平台的设计
  3. rk3288 rlt8723bs蓝牙没有搜索到蓝牙设备并且配对失败
  4. 修改Linux内核启动logo
  5. 财物机器人英文ppt演讲课件_机器人英语演讲PPT课件.ppt
  6. wemall5.0上线
  7. URLLC超低时延解决方案和关键技术
  8. wsappx关不掉_win10系统下wsappx.exe进程占用内存大能关闭吗
  9. mysql截取字符串最后两位_MySQL 字符串截取
  10. web安全漏洞——身份验证绕过