我的游戏对象里面的十个立方体相互撞击,现在我想要检测OnTriggerEnter。这样做的正确方法是什么?
我可以做这样的事情(下面的脚本)并将其分配给每个gaemobject。这不是一个单调乏味的方法吗?
&pt
答案 0 :(得分:0)
您可以检查对撞机游戏对象是否有任何识别标签,然后执行任何代码。例如,你可以降低敌人的HP,如果它达到0则摧毁它,依此类推。
据我所知,使用它完全没问题。过去为我工作过。
void OnTriggerEnter(Collider c) {
if(c.gameObject.tag == "Player"){
/* Whatever you want to do when
"Player" enters the collider goes here... */
}
}
PS:坚持你的十个立方体的例子,你可以拥有一个" Cube"为他们添加标签并检查它 - 然后在" Cube"标记的gameobject进入你的对撞机。
答案 1 :(得分:0)
这是做到这一点的方法。原因是你要检查每个盒子是否发生碰撞。如果您只想要一种方法,那么您只能拥有一个方框。
但您也可以在几行中完成,因此您无需手动添加它们。
public class CollisionController:MonoBehaviour{
private void Awake(){
foreach(Transform t in transform){
if(t == this.transform) { continue; }
t.gameObject.AddComponent<CollisionMethod>();
}
}
}
这是包含碰撞方法的脚本。
public class CollisionMethod:MonoBehaviour{
void OnTriggerEnter(Collider c) {
Debug.Log("hit");
}
}