我正在玩一个玩家正在飞行的游戏(完整的刚体,碰撞器),我有一个附有以下脚本的立方体:
using UnityEngine;
using System.Collections;
public class collision : MonoBehaviour
{
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name == "breakableBox")
{
Destroy(col.gameObject);
}
}
}
我想要发生的事情是,一旦飞机撞到立方体,立方体就会消失。相反,飞机只是从立方体反弹,这真的很奇怪。基本上,立方体就像一个混凝土盒子,它不会移动或被摧毁。我该如何解决这个问题?
答案 0 :(得分:1)
如果此脚本附加到多维数据集,则无效。
void OnCollisionEnter(Collision col)
函数正在接收播放器的碰撞对象,因此它会检查播放器是否具有名称“breakableBox”并试图销毁它。
我认为如果您将此脚本附加到播放器或将其更改为以下内容:
using UnityEngine;
using System.Collections;
public class collision : MonoBehaviour
{
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name == <player_Name>)
{
Destroy(this.gameObject);
}
}
}
你可以让它发挥作用。
答案 1 :(得分:0)
尝试将盒子的对撞机设置为&#34; Trigger&#34;并使用此:
using UnityEngine;
using System.Collections;
public class collision : MonoBehaviour
{
void OnTriggerEnter(Collider col)
{
if (col.gameObject.name == "breakableBox")
{
Destroy(col.gameObject);
}
}
}
答案 2 :(得分:0)
那么有很多因素。尝试其中一些选项:
只有这些来自我的想法。希望有所帮助