自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药

我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的。仅为学习Unity之用。图片大部分是自己画的,少数是从网上搜来的。您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码。

本篇主要记录声音、场景切换、武器弹药等。

关于碰撞

先插一句。上一篇记录了Unity3D的碰撞相关的试验结论。但太过漫长,不实用,经过整理,我总结了如下几句。

Rigidbody组件的作用是:接收外力,从而使自身像物理中的刚体一样运动;对其它物体产生力。

若Rigidbody的IsKinimatic为true,则不再接收外力;但会继续对其它物体产生力。

Collider组件的作用是:划定一个空间范围(一个矩形、球形、网格等),Rigidbody组件会检测两个物体的Collider是否发生重合(Enter)持续(Stay)或退出(Exit),并激发双方的Collision事件。如果Collider的Is Trigger为true,则激发双方的Trigger事件。

总之,场景中不断运动的物体,需要Rigidbody,始终静止的物体,不需要Rigidbody。

声音

场景里要有1个Audio Listener才能听到声音。距离Audio Listener近的AudioSource发出的声音才能被听到。

背景音乐一般放到主摄像机上。

偶尔才发出的声音,比如捡到金币时发出"叮"地声响。直接用AudioSource.PlayClipAtPoint方法就可以。

void OnTriggerEnter2D(Collider2D other)

{

if (other.tag != Tags.hero) { return; }

AudioSource.PlayClipAtPoint(pickedAudioClip, this.transform.position, 0.2f);

MonoBehaviour.Destroy(this.gameObject);

}

在持有AudioSource组件的对象上,可以看到一个喇叭,很好玩。这个坦克移动的时候,喇叭也跟着动了。

场景切换

场景切换时我希望一直保留某个对象,比如游戏控制器这种全局的东西。在脚本里用DontDestroyOnLoad就可以了。

void Awake()

{

if (instance == null)

{

instance = this;

DontDestroyOnLoad(this.gameObject);

}

else

{

Destroy(this.gameObject);

}

}

武器弹药

武器和子弹分别做成prefab,可以自由组合。在Inspector里也比较方便配置了。

总结

您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码。

请多多指教~

自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药的更多相关文章

  1. 自制Unity小游戏TankHero-2D(1)制作主角坦克

    自制Unity小游戏TankHero-2D(1)制作主角坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...

  2. 自制Unity小游戏TankHero-2D(3)开始玩起来

    自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅 ...

  3. 自制Unity小游戏TankHero-2D(2)制作敌方坦克

    自制Unity小游戏TankHero-2D(2)制作敌方坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...

  4. 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析

    自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...

  5. Unity小游戏制作 - 暗影随行

    用Unity制作小游戏 - 暗影惊吓 最近玩了一个小游戏,叫做暗影惊吓,虽然是一个十分简单的小游戏,但是感觉还是十分有趣的.这里就用Unity来实现一个类似的游戏. 项目源码:DarkFollow 主 ...

  6. 教你用Python自制拼图小游戏,一起来制作吧

    摘要: 本文主要为大家详细介绍了python实现拼图小游戏,文中还有示例代码介绍,感兴趣的小伙伴们可以参考一下. 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Pyt ...

  7. Java自制人机小游戏——————————剪刀、石头、布

    package com.hello.test; import java.util.Scanner; public class TestGame { public static void main(St ...

  8. c++小游戏--五子棋

    大家好,我是芝麻狐! 这是我自制的小游戏,目前仅支持devc++. 如果你没有c++软件, 请打开网站GDB online Debugger | Compiler - Code, Compile, R ...

  9. c++小游戏———扫雷

    大家好,我是芝麻狐! 这是我自制的小游戏,目前仅支持devc++. 如果你没有c++软件, 请打开网站GDB online Debugger | Compiler - Code, Compile, R ...

随机推荐

  1. 利用带关联子查询Update语句更新数据

    Update是T-sql中再简单不过的语句了,update table set column=expression  [where condition],我们都会用到.但update的用法不仅于此,真 ...

  2. Java Web1

    Java Web应用的核心技术是Java Server Page和Servlet.此外,开发一个完整的Java Web应该涉及一下几种概念及技术. 1.Servlet组件       Servlet响 ...

  3. Jmeter测试结果分析

    *.jtl文件内容: 请求发出的绝对时间,响应时间,请求的标签,返回码,返回消息,请求所属的线程,数据类型,是否成功,字节,             响应时间 1458294513309,   382 ...

  4. 【Java】JDBC连接数据库

    JDBC介绍 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言 ...

  5. linux下配置nginx使用service nginx start 服务

    解压出来后执行 mkdir /var/tmp/nginx/client/ -pv 接下来我们简单的为它提供一个服务脚本吧! # vim  /etc/init.d/nginx 新建文件/etc/rc.d ...

  6. 进阶——scrapy登录豆瓣解决cookie传递问题并爬取用户参加过的同城活动©seven_clear

    最近在用scrapy重写以前的爬虫,由于豆瓣的某些信息要登录后才有权限查看,故要实现登录功能.豆瓣登录偶尔需要输入验证码,这个在以前写的爬虫里解决了验证码的问题,所以只要搞清楚scrapy怎么提交表单 ...

  7. 亲测——pycharm下运行第一个scrapy项目 ©seven_clear

    最近在学习scrapy,就想着用pycharm调试,但不知道怎么弄,从网上搜了很多方法,这里总结一个我试成功了的. 首先当然是安装scrapy,安装教程什么的网上一大堆,这里推荐一个详细的:http: ...

  8. 狗扑论坛 自动刷取VIP狗粮

    狗扑论坛 自动刷取VIP狗粮 开始闲狗粮回复太慢就自己想了想去写一个,成功总是给我的哈哈. 自己花了一小时 时间慢慢学就慢慢写的  虽然代码简单 但是已经够自己用了 using System; usi ...

  9. 一个简单的Windows下的socket程序

    服务器端代码server.cpp: #include <stdio.h> #include <WinSock2.h> #pragma comment(lib,"ws2 ...

  10. 《python核心编程》笔记——文件的创建、读取和显示

    创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...