Unity3D学习笔记08:爆炸效果

  • Post author:
  • Post category:其他



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);
            }
        }
    }
}



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






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

点此下载




版权声明:本文为jukai7原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。