Unity3D学习笔记08:爆炸效果

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

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

            Unity3D学习笔记08:爆炸效果_第1张图片


添加一个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);
            }
        }
    }
}

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

           Unity3D学习笔记08:爆炸效果_第2张图片

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

你可能感兴趣的:(Unity3D学习笔记)