自制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. DIV弹出和关闭新DIV

    代码用HTML+JS实现: 代码(用HTML+JS实现): <!doctype html> <html lang="UTF-8"> <head> ...

  2. android 应用笔记

    android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...

  3. Linux下Hadoop2.6.0集群环境的搭建

    本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...

  4. 高尔夫管理系统SSH

    登录-----------http://localhost:8080/GOLF/Denglu 一.Action 1.处理今日消费数据逻辑的 package com.chinasofti.golf.ac ...

  5. C# abstract

    Abstract: 1.用途:提供一个可供多个派生类共享的通用基类定义. 2.抽象类也可以定义抽象方法,方法是将关键字 abstract 添加到方法的返回类型的前面(抽象方法没有实现,所以方法定义后面 ...

  6. OpenResty(nginx_lua_module)做ES代理以及备份ES数据

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  7. Mysql 变量使用

    mysql 中可以将所查询到的数据用变量存储下来,供后面使用 语法:SELECT @变量名 := 变量值 eg: SELECT @cid:=class_id, (SELECT class_name F ...

  8. 电子科技大学第八届ACM趣味程序设计竞赛第四场(正式赛)题解

    A. Picking&Dancing 有一列n个石子,两人交替取石子,每次只能取连续的两个,取走后,剩下的石子仍然排成1列.问最后剩下的石子数量是奇数还是偶数. 读懂题意就没什么好说的. #i ...

  9. cocos2d 3.X Shader 变暗和变灰

    转自http://www.waitingfy.com/archives/1741 1.为了节约一张图引发的Shader使用  我们注意到这个游戏当中经常使用一些按钮,美术会给两张图,一张稍微暗点,表示 ...

  10. listview选中没有效果

    listview选中没有效果了,设置了android:listselector也没有效果,最后发现是listview中的item布局设置了背景颜色导致,把item的背景色去掉就OK了 http://b ...