使用unity完成简单的打地鼠游戏2D制作

一、制作流程

1.创建场景scene(虽然是2D游戏,但制作过程使用2D或3D影响不大,我是用3D来制作的)
2.选中主照相机,把Projectiozn改为Orthographic,Position为(0,0,-10),其他保持默认

3.创建文件夹,起名Sprites,将两张图片素材拖入

4.分别选中两个图片,将Texture Type更改为Sprite(2D and UI),其他保持默认


5.将图片ground拖进场景,将场景可显示大小更改为图片大小:1280*752,调整主照相机的size为3.76,使图片填充整个界面


6.将图片Hole拖入场景,更改Order in Layer为1,场景内新建空物体Map,将ground和Hole拖成其子物体

7.完成界面

8.添加3D的cube,新建文件夹Material,新建材质,更改贴图为Gophers,拖到cube上,改名Cube1

9.新建文件夹Scripts,新建脚本S1,用于点击销毁

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S1 : MonoBehaviour {// Use this for initializationvoid Start () {}void OnMouseDown(){Debug.Log("Do You Like Me?");Destroy(gameObject);}}

10.新建脚本S2,用于实现物体转换和销毁,把其拖给Cube1

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S2 : MonoBehaviour {public GameObject m_Prefab2;// Use this for initializationvoid Start () {}void OnMouseDown(){Instantiate(m_Prefab2, transform.position, Quaternion.identity);Destroy(gameObject);}
}

11.新建文件夹Prefabs,再在场景里添加Cube2,创建材质mat2,贴图改为Gophers_beaten,新建脚本S3,用于实现自动销毁,加在Cube1上

12.将Cube1和Cube2拖拽到Prefabs里面,形成预制体,在Cube1里面的S2脚本下的Prefab2更改为Cube2

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

13.新建脚本CreateTarget,用于实现地鼠在九个洞里的随机定时出现

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CreateTarget : MonoBehaviour {public GameObject m_Target;// Use this for initializationvoid Start () {//Create();InvokeRepeating("Create", 0, 1);}void Create(){Vector3 pos = Vector3.zero;int id = 0;id = Random.Range(1, 10);if (id == 1){ pos = new Vector3(2.03f, 1.41f, 0);transform.Rotate(0, 90, 0); }if (id == 2)pos = new Vector3(0.04f, 1.41f, 0);if (id == 3)pos = new Vector3(-1.98f, 1.41f, 0);if (id == 4)pos = new Vector3(-1.98f, 0.46f, 0);if (id == 5)pos = new Vector3(0.04f, 0.46f, 0);if (id == 6)pos = new Vector3(2.03f, 0.46f, 0);if (id == 7)pos = new Vector3(-1.98f, -0.58f, 0);if (id == 8)pos = new Vector3(0.04f, -0.58f, 0);if (id == 9)pos = new Vector3(2.03f, -0.58f, 0);Instantiate(m_Target, pos, Quaternion.identity);}
}

14.在场景中新建空物体Random,将脚本CreateTarget拖到其上,将Target更改为Cube1

15.新建文件夹AudioSource,将两个声音素材拖入,appear拖给预制体Cube1,beaten拖给预制体Cube2


16.分别更改mat1和mat2的Rendering Mode需要更改为cutout,调整Alpha Cutoff为0.25,去掉白边

17.按下图调整主照相机的数值,使其拍摄另一面(或者使用Photoshop将素材图片Gophers_beaten和Gophers上下颠倒,并存成png格式放入素材文件夹,这是为了让界面中的地鼠图像是正的)

18.最后build一下就OK啦

二、重难点

1.因为此游戏属于2D游戏,所有要将主照相机的Projection改为Orthographic

2.每一个脚本在正式编写之前要先试行,以防止编写完成后不能使用

3.需要调整界面为图像的分辨率和大小

4.最后的CreateTarget编写的时候,需要用到InvokeRepeating函数,后面的三个参数分别是调用的函数、起始时间、时间间隔

5.需要将不同种类的文件存放在相应的文件夹中,方便查看

6.随机出现的物体需要事先设置成预制体来使用

7.重叠的两张场景图片之间存在层级关系

8.一开始贴图看起来是反的,拍摄背面则是正的(或者也可以用ps将原始图片上下颠倒,但一定要存成png格式,否则白边依然存在)

9.贴图的Rendering Mode需要更改为cutoff,不然就会有白边

使用unity完成简单的打地鼠游戏2D制作相关推荐

  1. Unity编写冰球对战游戏 2D版

    Unity编写冰球对战游戏 2D版 Unity是一款非常方便.简洁.低成本的一款游戏引擎.在这里,向大家介绍这样用Unity这个引擎编写冰球对战游戏 因为Unity这个引擎可以编写3D游戏 ,同样的也 ...

  2. Unity:简单易懂小游戏

    这篇博文并不讲述整个游戏的制作流程,如果您感兴趣,可以访问这里,如果访问遇到什么困难,在B站有一摸一样的视频. 这是完成以后的样子: 运行效果: 作为个人小结,下面写一些做这个游戏的收获: 1.什么是 ...

  3. matlab制作打地鼠游戏,Python制作打地鼠小游戏

    原标题:Python制作打地鼠小游戏 导语 大家好,欢迎来到 Crossin的编程教室 ! 打地鼠游戏相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~ 今天就给大家分享一个 ...

  4. unity学习笔记2-卡牌游戏的制作

    unity学习笔记2 需求:制作卡牌游戏 第一步,建立card类,carddatabase类 card类删除自带的start和update方法,因为只是个对象类,负责装载对象即可 carddataba ...

  5. Unity非常简单的翻牌游戏教程,纯UI实现

    首先在场景中创建Canvas,加几个Button 为了排版方便,用了GridLayout 每个Button的结构是这样的,你要为Button里面加四个Image,我这样弄是为了省事,少写脚本 这四个I ...

  6. unity贪吃蛇c 语言代码,unity实现简单贪吃蛇游戏

    本文实例为大家共享了unity实现贪吃蛇游戏的详细代码,供大家参考,详细内容如下 首先创建一个头部,编写脚本利用WASD控制头部的移动. Vector3 up=new Vector3(0,1,0); ...

  7. 用js制作简单的打地鼠游戏

    HTML代码: <body>     <div class="container">         <div class="contain ...

  8. Unity 3D-learning 简单打飞碟游戏

    一.编写一个简单的打飞碟游戏 游戏内容要求: 游戏有 n 个 round,每个 round 都包括10 次 trial: 每个 trial 的飞碟的色彩.大小.发射位置.速度.角度.同时出现的个数都可 ...

  9. 软件智能:aaas系统的全线贯通 从最简单的“打地鼠”游戏到超时空的宇宙能流

    本篇在前面 的儒释道整合的基础上,尝试着描述aaas的全线的贯通,即AI开发的全栈框架(含 开发环境和运行时环境). 大致内容在下面的语音文件中:(文件名:从最简单的初生儿级的拍地鼠游戏到超时空的宇宙 ...

  10. 打地鼠程序代码C语言,自己用C写的一个简单的打地鼠游戏代码出了个问题(鼠标和循环不能...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 b=0; /*保证上面不出界*/ if(a>getmaxx()-R) a=getmaxx()-R; /*保证右边不出界*/ if(b>getm ...

最新文章

  1. R语言数据类型及数据类型判断
  2. P1091 合唱队形[单调性+DP]
  3. 数据结构学习-带头结点的单链表就地逆置
  4. java类多例_Java多例设计模式实例详解
  5. 计算机文档vmware安装虚拟机,教你如何用VMware虚拟机安装系统.docx
  6. 《剑指offer》孩子们的游戏---约瑟夫问题
  7. 微型计算机物理地址转换,微型计算机及接口技术2015年4月真题试题(04732)
  8. react(85)--error:Error creating bean with name ‘onlineStudyController‘:
  9. Linux下快速搭建DNS服务器
  10. navicat远程mysql_navicat 远程连接mysql
  11. windows10环境下载labelImg及使用方法
  12. 流媒体服务器主板型号怎么看,关于服务器的详解
  13. 档案盒正面标签制作_如何制作差异化的短视频内容?
  14. 队列和通知区别_Java多线程学习(五)——等待通知机制
  15. 计算机科学现代教育,现代教育技术教程-计算机科学教育.pdf
  16. mx350显卡天梯图_五月显卡性能排行 台式显卡天梯图2020年5月最新版
  17. 这可能不只是一篇面经(BAT面试)
  18. RHEL5.4配置自动挂载器
  19. en开头的单词_英语四级en-词汇前后缀解析
  20. autoCAD 授权文件的位置

热门文章

  1. app 播放服务器文件,配置apple-app-site-association文件并在服务器上传
  2. Python数据分析实战(1)数据分析概述
  3. 【2022.1】电脑重装系统后浏览器密码恢复:Edge需自己打开自动同步,Chrome默认直接同步
  4. 华为鸿蒙电视保修终身,华为全新鸿蒙OS新品来了!刷新电视“N年不变”固有认知...
  5. 【2023秋招】10月22日美团校招真题
  6. springboot定时器 + Javamail + 心知天气API (通过邮件每天给女朋友发送一句情话+当日天气信息+当日生活指数)
  7. pycharm: Error: Cannot run program……
  8. Java就业面试问题大全
  9. 博途V16 更改PLC的型号和固件版本
  10. python编程案例看电影_转利用python实现电影推荐