一、场景搭建

Unity打地鼠源文件

  1. 新建Unity文件,命名为此项目名称。

  2. 确认场景主摄像机是否是属于2D模式。

  3. 在project面板→Assets中新建文件夹,命名为sprites,用于存放素材图片。

  4. 将两张图片的属性进行修改:
    Texture Type结构类型改为:Sprite(2D and UI).

  5. 将两张图片拖动到Scene场景窗口。

  6. 由于Game游戏面板中的画面没有充满,是因为Game游戏面板中的像素与素材图片的像素尺寸不匹配造成的。这时候就可以查看图片的尺寸,然后将Game游戏面板的尺寸设置和图片尺寸一样即可。
    (1) 查看图片尺寸:
    点选图片,在Inspector面板即可看到尺寸

    (2) 将Game游戏面板尺寸进行修改。

  7. 调整摄像机大小属性(两种方法)。
    (1) 选中摄像机,直接对size数值进行修改;
    (2) 以图片宽的数值除以2再除以图像每单位的像素数。
    最后调整好的效果如下(确保没有空余区域即可):

  8. 将另外地鼠的洞口图片拖动到Scene场景中。
    (这一步如果将洞口图片拖动到场景中还是看不到效果的话,可以使用以下方法进行调整:
    选中ground图片,将Inspector属性面板中“Order in Layer”数值调整为0,代表在第0层;
    选中Hole图片,将Inspector属性面板中“Order in Layer”数值调整为1,代表在第1层。
    这样,就可以确保洞口图像是处在背景图像上方的)

  9. 在Hierarchy层面板中新建空对象(注意对位置属性清0),命名为Map,把两幅图像作为空对象的子集。

  10. 保存项目。

**

二、点击地鼠的简单效果学习

**

  1. 在Hierarchy面板新建3D物体→Cube,(由于Game游戏面板光线很暗,可以添加一个平行光)

  2. 选中摄像机,“Clear Flags”选择为“Solid Color”,选择下方颜色块,选择黑色。

  3. 在Project面板→Assets中新建文件夹。命名为材质,新建一个新的材质,命名为mat01。

  4. 调整mat01材质球的颜色,并拖动给Cube。

  5. 创建脚本文件夹,命名为Scriptes,添加C#脚本,命名为S1,拖动到Cube上并打开。

  6. S1代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S1 : MonoBehaviour
{// Use this for initializationvoid Start(){}void OnMouseDown(){Debug.Log("you hit me ");}
}
  1. 新建一个正方形,添加颜色。(如果Game窗口看不到的话移动一下位置属性)
  2. 将“S1”脚本拖动给Square正方形,并添加一个碰撞体“Physics 2D”→“Box Collider 2D”。

  3. 在S1脚本中添加销毁命令:
Destroy(gameObject);//直接销毁对象

**

三、单个地鼠被击中的效果制作

**

实现目标: 鼠标点击地鼠,地鼠1销毁;
地鼠2在地鼠1的位置出现,地鼠2在0.5秒后自动销毁;
如果没有点击地鼠1, 3秒后地鼠1自动销毁。

  1. 新建Cube对象,命名为Cube1。添加一个材质球。新建C#文件,命名为S2,并拖动给Cube1对象。
  2. 打开S2的C#文件,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S1 : MonoBehaviour
{// Use this for initializationvoid Start(){}void OnMouseDown(){Debug.Log("you hit me ");}
}
  1. 回到Unity进行测试,无误后新建预制体文件夹,命名为prefabs。
  2. 进到Mat 材质文件夹,选中之前创建的材质球,按Ctrl+D复制一个出来,修改颜色,命名为mat02。
  3. 将场景中的Cube1移动位置,新建一个Cube,将mat02拖动给cube。将cube拖拽到创建的预制体文件夹prefabs中,命名为Cube2.然后就可以删除场景中的cube了(因为已经做成了预制体)。
  4. 打开S2的C#文件,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S2 : MonoBehaviour {public GameObject m_Prefab2;// Use this for initializationvoid Start () {}private void OnMouseDown(){Instantiate(m_Prefab2, transform.position, Quaternion.identity);Destroy(gameObject);}
}
  1. 回到Unity,选中Cube1,可以看到信息面板S2的C#文件下面有一个Prefab2的引用,这时候就可以把刚刚做好的预制体Cube2 拖动过去了。
  2. 新建S3的C#文件,用来控制下一个地鼠出现时间间隔为0.5秒。代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class S3 : MonoBehaviour {// Use this for initializationvoid Start () {Destroy(gameObject, 0.5f);}// Update is called once per framevoid Update () {}
}
  1. 将场景中的Cube1也拖动到Prefabs文件夹中,也做成一个预制体,方便后续使用。

**

四、随机生成地鼠

**

目标:每秒在9个指定位置随机选择一个位置实例化一个地鼠。随机在9个位置生成预制体。

  1. 场景中新建一个空对象,命名为CreateTarget,新建一个C#文件命名为CreateTarget。
  2. 打开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);}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(4, 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(4, 1, 0);if (id == 7)pos = new Vector3(0, 2, 0);if (id == 8)pos = new Vector3(2, 2, 0);if (id == 9)pos = new Vector3(4, 2, 0);Instantiate(m_Target, pos, Quaternion.identity);//Instantiate(m_Target,)}
}
  1. 适当调整摄像机视图,将Cube大小设置为0.8(如果不设置的话每上下两个会挨在一起)
  2. 添加音效
    选择Cube1,添加组件audio→audio source,分别对Cube1和cube2添加音效。
  3. 再次导入田园图,洞口图,调整洞口、Cube出现位置即可完成。

**

知识点总结:

**

  1. 调整Game游戏面板的显示区域可以直接对camera摄像机的Size属性进行调整;也可以使用该图像宽的像素数除以2再除以该图片每单位的像素数。
  2. 如果将两张图像导入到Sence场景中,但是在Game面板没有显示另一张图像时,可分别对两张图像的层级关系进行设置。
  3. 如果需要设置鼠标点击,Game游戏面板中的物体得到反馈,需要注意的问题:该物体需要添加Collider碰撞体,该物体上有添加对应的得到反馈的C#文件。
  4. 直接销毁对象代码:Destroy(gameObject);
  5. 在当前位置生成新的一个物体代码:
    Instantiate(m_Prebab,tanasform.position, Quaternion.identity);
    m_Prebab:代表新生成的物体;tanasform.position:表示在当前位置生成;Quaternion.identity:表示不进行旋转。
  6. 随机函数:Random.Range(1,10);
  7. 添加音频需要确保物体上有Audio→Audio Source;

**

制作过程中出现的问题及解决办法:

**

  1. 在实现“地鼠在地图上指定的9个位置随机生成”部分,第一遍看视频并不能完全理解,后来重新观看视频并进行实操,了解了一些实现原理:
    (1) 定义一个生成函数;
    (2) 定义场景中的9个位置点;
    (3) 在9个位置点分别实例化;
    (4) 在Start函数中进行调用生成函数(测试在Unity中是否可以实现);
    (5) 在生成函数中编写随机生成代码;
    (6) 继续在生成函数中编写循环代码;
    (7) 在Start函数中编写代码(确定每隔多久生成几个):InvckeRepeating(“Creat,0,1”);
    Creat:表示运行该函数;
    0:表示隔0秒生成;
    1:表示每次生成1个。
  2. 在最后对地鼠洞口与地鼠位置进行对齐时,需要适当对摄像机属性进行调整。如果在Game游戏窗口看不到物体画面时,可以适当调整物体位置属性。

Unity实现打地鼠游戏操作步骤、总结、问题及解决办法相关推荐

  1. android游戏黑屏,第五人格游戏进不去黑屏解决办法

    小编今天给各位玩家朋友们带来的是第五人格游戏进不去黑屏解决办法,很多的玩家朋友们在第五人格更新后都出现了黑屏.游戏无法进入等情况,这应该怎么办呢?小编把解决方法给大家整理在了下方,感兴趣的小伙伴们快来 ...

  2. please reinstall the mysql distribution_php安装扩展mysqli的实现步骤及报错解决办法

    php安装扩展mysqli的实现步骤及报错解决办法 terminal#cd php-5.3.6/ext/mysqli #/usr/local/webserver/php/bin/phpize #./c ...

  3. php mysqli报错,php安装扩展mysqli的实现步骤及报错解决办法

    php安装扩展mysqli的实现步骤及报错解决办法 terminal #cd php-5.3.6/ext/mysqli #/usr/local/webserver/php/bin/phpize #./ ...

  4. php的mysqli步骤,php安装扩展mysqli的实现步骤及报错解决办法

    php安装扩展mysqli的实现步骤及报错解决办法 php安装扩展mysqli的实现步骤及报错解决办法 terminal #cd php-5.3.6/ext/mysqli #/usr/local/we ...

  5. 无法连接服务器系统退出游戏,全民养成之女皇陛下游戏出现无法连接服务器怎么办 解决办法一览...

    全民养成之女皇陛下游戏出现无法连接服务器怎么办 解决办法一览.全民养成之女皇陛是一款非常好玩的游戏,许多玩家被其优秀的内容和有趣的玩法所吸引.但是近日有小伙伴反应无法连接服务器的问题,小编这里整理了一 ...

  6. 楚留香pc端连接服务器未响应,楚留香游戏pc端闪退怎么办_楚留香游戏中pc端闪退解决办法汇总...

    楚留香手游的内存相对其他小型游戏来说比较大,所以游戏的过程中容易出现pc端闪退的情况,楚留香游戏pc端闪退怎么办?快啦小编给大家带来楚留香游戏中pc端闪退解决办法汇总. 楚留香游戏中pc端闪退解决办法 ...

  7. 计算机受限制用户,由于该计算机受到限制,本次操作已被取消的解决办法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何解决由于该计算机受到限制,本次操作已被取消,请与系统管理员联系.上周末用了几款优化软件,今天打开心爱的WOW发现"由于该计算机受到限制,本次 ...

  8. win10设置了睡眠时间,但两分钟无操作仍然黑屏。解决办法

    在控制面板设置了电池和睡眠时间, 但过了几分钟无操作还是会黑屏,,给出解决办法. 一.使用win+R,输入regedit,打开注册链表. 二.定位到:计算机\HKEY_LOCAL_MACHINE\SY ...

  9. ENVI安装步骤和常见问题及解决办法(以ENVI5.3为例)

    目录 一.先关闭所有的防火墙 Windows自带的关闭方法 二.安装步骤 三.安装出现的问题 资源链接: 一.先关闭所有的防火墙 Windows自带的关闭方法 打开控制面板,找到系统与安全,点击进去, ...

  10. Steam快捷方式后缀变成.url(steam游戏打不开)的解决办法

    百度了很久都没找到解决办法,最后在谷歌找到的. 右键该游戏快捷方式->更改打开方式->Internet浏览器 大功告成,可以愉快的玩耍了

最新文章

  1. 云计算简史_云计算简史
  2. 腾讯下载视频转换MP4
  3. 均匀白噪声的定义及特点_噪声的物理本质是什么?
  4. Sublime Text3 总结笔记
  5. mysql alert table 日志_MySQL日志
  6. codeup 2044 暴力搜索
  7. 【牛客 -330E 】Applese 涂颜色(费马小定理,超级快速幂)
  8. Android模拟器adb命令介绍
  9. 费马小定理与欧拉公式
  10. UE4 蓝图文档阅读笔记
  11. 【3dsmax插件】FBX转Bip插件 Bippy.ms
  12. AC-Campus准入控制--Mac
  13. 用window调用kjb和ktr
  14. 如何将win10系统安装到U盘?
  15. imp报IMP-00010,IMP-00013错误
  16. kvm静态迁移error: Cannot access storage file
  17. Geoserver 发布wmts服务,以及cesium加载发布的wmts服务
  18. 【个人学习笔记】泛函分析-度量空间(一)——定义与例子
  19. CORDIC IP (SIN AND COS功能详解)
  20. requests的安装与简单运用

热门文章

  1. 西北工业大学21计算机考研,研友分享:西北工业大学计算机考研血泪史
  2. Android使用BottomNavigationView+NavigationUI报错
  3. python计算几周零几天_Python自定义函数计算给定日期是该年第几天的方法示例
  4. word制作多级标题目录
  5. POI PPT模板字段替换
  6. 服务器删除的excel文件备份在哪里,microsoft excel备份文件在哪 - 卡饭网
  7. App性能优化:内存优化
  8. html对象转换为字符串,如何使用JavaScript将对象转换为字符串?
  9. RW文档翻译学习——RW-BLE-KERNEL核心函数功能
  10. 微信公众号授权,支付,退款总结【shoucang】