教程地址(观看视频需翻墙):
实现功能:
1. 初始化预制物体;
2. 使用数组调用子物体组件;
3. 使用foreach遍历添加属性;
public GameObject fracturedCrat;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
//初始化预制物体 Instantiate(fracturedCrat, transform.position, Quaternion.identity),后面这句是为了调用每个子物体组件而演变的
GameObject fracturedCrateObj=Instantiate(fracturedCrat, transform.position, Quaternion.identity)as GameObject;
//使用数组储存子物体的组件信息
Rigidbody[] allrigidBodies = fracturedCrateObj.GetComponentsInChildren<Rigidbody>();
if (allrigidBodies.Length > 0) //只要数组中有rigidbody的信息就会执行下面的代码
{
foreach (var body in allrigidBodies) //遍历所有元素,然后给每天元素添加爆炸力属性
{
body.AddExplosionForce(500, transform.position, 1);
}
}
Destroy(this.gameObject);
}
}
最后效果如下图所示:fracturedCrat就是小球预设