查看: 6272|回复: 31

[实例] unity3d中2D射击游戏2:发射子弹声音及碰撞事件的编写

[复制链接]

18

主题

16

听众

201

积分

Rank: 2

升级   0.33%

发表于 2012-12-20 18:32 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
资源信息 Tutorial Information
教程名称: 【蜜蜂2D射击游戏图文教程2】unity3d中2D射击游戏:发射子弹声音及碰撞事件的编写(发布原创教程可获得更多积分哦!)
适用引擎: (资源适用引擎)
教程语种: 中文
教程等级: 小白(等级越高教程越难,但能学到的东西越多)
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 转载自互联网 (如有问题请短消息联系作者或发表回复)
点击查看原图 --> 美丽分割线
请先回复
哇伊~ (((‵□′))回复太烦了,怒买VIP(充值金额将用于论坛采购更多资源)

--> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 -->
本帖最后由 尊者 于 2012-12-20 18:44 编辑

二、发射子弹声音及碰撞事件的编写(bullet与enemy碰撞)
1.为发射的子弹添加声音,这里用到一个生成声音的小工具:
2.生成想要的声音文件后,在BulletPrefab中添加

小提示:在Rolloff Mode中更改选项后 可更改声音效果
3.添加要攻击的敌人,从高处落下的球体,我们添加一个sphere

调整其X、Y、Z轴 为0,为sphere创建一个红色的材质

4.新建一个enemyScript,定义var enemySpeed:int; 并指定速度为5.
添加如下代码:

  1. var enemySpeed:int;

  2. function Update () {
  3.         
  4.         amtToMove=enemySpeed*Time.deltaTime;
  5.         transform.Translate(Vector3.down*amtToMove);
  6. }
复制代码
这时球会一直沉下去,我们添加约束条件
添加如下代码:
  1.         if(transform.position.y<=-3)
  2.         {
  3.                 transform.position.y=6.5;
  4.                
  5.                 transform.position.x=Random.Range(-6,6);
  6.         }
复制代码
实现任一X轴下落.
5.为bullet与enemy添加撞击事件
选择enemy-

勾选Is Trigger
在BulletScript中添加撞击事件,代码如下:
  1. function OnTriggerEnter(otherObject:Collider)
  2. {
  3.         
  4. }
复制代码
选择enemy 添加add Tag...

添加一个enemy的Element

返回选择enemy 设置Tag为enemy

在BulletScript  function OnTriggerEnter中添加:
  1. function OnTriggerEnter(otherObject:Collider) //otherObject为绑定的tag enemy 并带一个碰撞的参数Collider
  2. {
  3.         if(otherObject.gameObject.tag=="enemy")
  4.         {
  5.                 PlayerScript.playerScore+=100;//分数+100
  6.                
  7.                 otherObject.gameObject.transform.position.y=7;//碰撞发生重新设置enemy的y轴坐标
  8.                
  9.                      otherObject.gameObject.transform.position.x=Random.Range(-6,6);//重置enemy x轴坐标
  10.                      
  11.                 Destroy(gameObject);//销毁bullet
  12.         }
  13. }
复制代码
更改enemy与player的z轴 都为0,播放后实现 一旦碰撞发生分数+100、销毁子弹、重置enemy坐标。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

楼主热帖
已有 1 人评分道具币 收起 理由
1287537617aa + 1

总评分: 道具币 + 1   查看全部评分

1

主题

10

听众

202

积分

Rank: 2

升级   0.67%

发表于 2012-12-30 21:03 |显示全部楼层
顶一个    这个教程我看过了 还不错哦  呵呵
回复

使用道具 举报

18

主题

16

听众

201

积分

Rank: 2

升级   0.33%

发表于 2013-1-5 20:23 |显示全部楼层
回复

使用道具 举报

0

主题

0

听众

6

积分

Rank: 1

升级   3%

发表于 2013-2-28 10:50 |显示全部楼层
謝謝大大的教學分享,最近正好在學Unity不過卡在很多函式跟功能都不知道。
謝謝!
回复

使用道具 举报

1

主题

22

听众

201

积分

Rank: 2

升级   0.33%

发表于 2013-6-17 18:51 |显示全部楼层
看上去很厉害的样子
回复

使用道具 举报

0

主题

22

听众

204

积分

Rank: 2

升级   1.33%

发表于 2017-5-6 14:58 |显示全部楼层
好帖就是要顶
回复

使用道具 举报

0

主题

22

听众

201

积分

Rank: 2

升级   0.33%

发表于 2017-5-6 14:31 |显示全部楼层
真心顶
回复

使用道具 举报

0

主题

22

听众

204

积分

Rank: 2

升级   1.33%

发表于 2017-5-6 14:38 |显示全部楼层
难得一见的好帖
回复

使用道具 举报

0

主题

22

听众

202

积分

Rank: 2

升级   0.67%

发表于 2017-5-6 14:51 |显示全部楼层
很好哦
回复

使用道具 举报

0

主题

22

听众

203

积分

Rank: 2

升级   1%

发表于 2017-5-6 14:28 |显示全部楼层
不错不错
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

站长推荐 上一条 /1 下一条

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal   

GMT+8, 2020-1-28 09:37 , Processed in 0.111052 second(s), 88 queries .