我需要能够检测是否有2个单独的物体相互接触。我不知道是否有一段特定的代码可以做到这一点。
所以我编写了一些代码来检测代码所附加的对象是否在触摸某物,但是我不知道如何检测是否有2个具有不同标签的对象在触摸
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Rocket")
{
istouchingrocket = true;
}
if (other.gameObject.tag == "Ground3")
{
Isend = true; //Ground three is the ending platform. This piece of code is attached to oil which is not touching this. I need to detect if the player is touching "Ground3".
}
}
void OnCollisionExit(Collision other)
{
if (other.gameObject.tag == "Rocket")
{
istouchingrocket = false;
}
}
因此代码附在机油上,当玩家触摸“ ground3”时,他们便具有销毁机油的能力。该代码需要远程检测是否有2个单独的物体在触摸。
答案 0 :(得分:0)
对于玩家脚本来说,最好有一个字段来跟踪它是否具有销毁石油的能力:
public bool canDestroyOil;
确保在false
中将其设置为Start()
:
canDestroyOil=false;
然后,当玩家检测到是否触摸到“ ground3”,然后将其设置为true
:
canDestroyOil = true;
然后在加油脚本中,当它碰到玩家时,如果玩家可以消灭油脂,它就会自我毁灭:
if (player.canDestroyOil) {
gameObject.Destroy();
}
答案 1 :(得分:0)
看看IsTouching()函数。
它完全符合您的要求。