using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MineExplode : MonoBehaviour {
public float m_ExplosionRadius = 5f;
public float m_MaxDamage = 100f;
public AudioSource m_ExplosionAudio;
public ParticleSystem m_ExplosionParticles;
public LayerMask m_TankMask;
public float m_ExplosionForce = 1000f;
public GameObject Mine;
public void start()
{
m_ExplosionParticles.Stop(true);
m_ExplosionAudio.Stop();
}
public void OnTriggerEnter (Collider Name) {
if (Name.tag == "Player")
{
m_ExplosionParticles.Play(true);
m_ExplosionAudio.Play();
}
}
}
所以这是我的代码,但当我驾驶对撞机(在Unity中)时,它什么也没做......有人知道为什么会这样吗?任何帮助,将不胜感激。 我参加了Tanks 3D教程并决定为它添加一些地雷以适应Unity。
答案 0 :(得分:0)
有很多事情会影响碰撞事件的发送和发送方式。
在编辑器中,您在对象上添加了一个对撞机组件。这使得静态对撞机。如果您还添加刚体组件,则会生成动态对撞机。静态对撞机最适合不动的想法。动态碰撞器用于移动的对象。
对于每个对撞机,您还可以在对象上添加的对撞机组件上勾选或取消选中 isTrigger 复选框。如果勾选,则对象的变换(位置,旋转)不会受到影响,但会触发OnTriggerEnter
函数。
最后,请注意,不同的对象对将不会一起作用,并且可能您的对象没有反应,因为它碰撞的另一个对象未正确设置。
要确切知道将调用哪个函数以及哪些碰撞器可以一起操作,请参考this documentation page底部的碰撞操作矩阵