Unity3D学习笔记08:爆炸效果

       Unity3D的刚体Rigidbody下面有个AddExplosionForce函数,查看文档我们得知这个函数是用来添加爆炸力的。爆炸效果在游戏中经常使用到,尤其是射击类游戏。我们通过一个小例子学习一下这个方法的使用。

       首先新建一个项目,命名为“explosionTest”,我们在场景中加入四个方块Cube作为受到爆炸影响的物体,并给它们添加刚体组件,然后新建一个球体Sphere,作为炸弹,命名为“bomb”。把炸弹放到四个方块的中间,在炸弹的上方放置一个引发小球,当小球落下时触发碰撞函数OnCollisionEnter(),使炸弹爆炸。建完后的场景如下:

            


添加一个C#脚本文件“explosionScript”,代码如下:

using UnityEngine;
using System.Collections;

public class explosionScript : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    void OnCollisionEnter(Collision col)
    {
        //如果碰撞物是上方落下的小球,进行爆炸处理
        if (col.transform.name == "Sphere")
        {
            //定义爆炸半径
            float radius = 3.0f;
            //定义爆炸位置为炸弹位置
            Vector3 explosionPos = transform.position;
            //这个方法用来反回球型半径之内(包括半径)的所有碰撞体collider[]
            Collider[] colliders = Physics.OverlapSphere(explosionPos, radius);

            //遍历返回的碰撞体,如果是刚体,则给刚体添加力
            foreach (Collider hit in colliders)
            {
                if (hit.rigidbody)
                {
                    hit.rigidbody.AddExplosionForce(600, explosionPos, radius);
                }
                //销毁炸弹和小球
                Destroy(col.gameObject);
                Destroy(gameObject);
            }
        }
    }
}

       把脚本拖到炸弹上,运行游戏,当小球落下后,碰到炸弹触发函数,使得周围的方块被炸飞。

           

最后附上项目的下载地址:点此下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值