unity3d中2D射击游戏2:发射子弹声音及碰撞事件的编写
本帖最后由 尊者 于 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.
添加如下代码:
var enemySpeed:int;
function Update () {
amtToMove=enemySpeed*Time.deltaTime;
transform.Translate(Vector3.down*amtToMove);
}这时球会一直沉下去,我们添加约束条件
添加如下代码: if(transform.position.y<=-3)
{
transform.position.y=6.5;
transform.position.x=Random.Range(-6,6);
}实现任一X轴下落.
5.为bullet与enemy添加撞击事件
选择enemy-
勾选Is Trigger
在BulletScript中添加撞击事件,代码如下:function OnTriggerEnter(otherObject:Collider)
{
}选择enemy 添加add Tag...
添加一个enemy的Element
返回选择enemy 设置Tag为enemy
在BulletScriptfunction OnTriggerEnter中添加:function OnTriggerEnter(otherObject:Collider) //otherObject为绑定的tag enemy 并带一个碰撞的参数Collider
{
if(otherObject.gameObject.tag=="enemy")
{
PlayerScript.playerScore+=100;//分数+100
otherObject.gameObject.transform.position.y=7;//碰撞发生重新设置enemy的y轴坐标
otherObject.gameObject.transform.position.x=Random.Range(-6,6);//重置enemy x轴坐标
Destroy(gameObject);//销毁bullet
}
}更改enemy与player的z轴 都为0,播放后实现 一旦碰撞发生分数+100、销毁子弹、重置enemy坐标。
顶一个 这个教程我看过了 还不错哦呵呵 源码下载:http://www.u3dchina.com/t-2342-1-1.html 謝謝大大的教學分享,最近正好在學Unity不過卡在很多函式跟功能都不知道。
謝謝! 看上去很厉害的样子 好帖就是要顶 真心顶 难得一见的好帖 很好哦 不错不错