<pre name="code" class="cpp">using UnityEngine;
using System.Collections;
public class Shell : MonoBehaviour {
public GameObject explosionEffect;//创建一个爆炸的GameObject对象
public float explosionTimeUp;//爆炸预制体的存留时间
public float explosionRadius;
public float explosionForce;
void OnCollisionEnter(){
GameObject obj = Instantiate (explosionEffect, transform.position, transform.rotation) as GameObject;//在发生碰撞的位置和角度,发生爆炸,即在该位置复制一个爆炸的预制体
Destroy (gameObject); //子弹发生碰撞后,自动销毁
Destroy (obj, explosionTimeUp); //销毁爆炸的预制体,第二个参数为存留的时间
Collider[] cols = Physics.OverlapSphere (transform.position, explosionRadius);//OverlapSphere这个函数将子弹运行过程的位置(position)中爆炸范围内的(explosionRadius)碰撞体生成数组输入到collider中
if (cols.Length > 0) {
for(int i = 0; i<cols.Length;i++){
Rigidbody r = cols[i].GetComponent<Rigidbody>();//将collider的刚体存入到r中
if(r != null){//由于大地有碰撞体但没有刚体,所以不发生爆炸,若碰到的是大地,则r=null
r.AddExplosionForce(explosionForce,transform.posi
unity3d添加子弹爆炸预制体动画
最新推荐文章于 2025-06-04 18:28:39 发布