C# 当在Unity中按下拾取按钮(X)时,如何销毁碰撞的游戏对象
我需要让我的游戏对象(拾音器)在玩家进入触发器并按下x键拾音器时被摧毁 这就是我到目前为止得到的。 这是需要销毁的皮卡上的内容:C# 当在Unity中按下拾取按钮(X)时,如何销毁碰撞的游戏对象,c#,unity3d,C#,Unity3d,我需要让我的游戏对象(拾音器)在玩家进入触发器并按下x键拾音器时被摧毁 这就是我到目前为止得到的。 这是需要销毁的皮卡上的内容: public void Update() { if (UIManager.XButtonPressed == true) { UIManager.AbleTopickUp = false; UIManager.XButtonPressed = false; Destroy(this.gameObject)
public void Update()
{
if (UIManager.XButtonPressed == true)
{
UIManager.AbleTopickUp = false;
UIManager.XButtonPressed = false;
Destroy(this.gameObject);
Debug.Log("Destroyed the pickup.");
}
}
void OnTriggerEnter(Collider collision)
{
if (collision.gameObject.name == "Player")
{
UIManager.AbleTopickUp = true;
}
}
void OnTriggerExit(Collider collision)
{
if (collision.gameObject.name == "Player")
{
UIManager.AbleTopickUp = true;
}
}
这是在与皮卡车扳机相撞的玩家身上:
if (UIManager.AbleTopickUp)
{
if (Input.GetButtonDown("XButton"))
{
UIManager.XButtonPressed = true;
if (currentSlot == 1)
{
Slot1_W = 1;
}
if (currentSlot == 2)
{
Slot2_W = 1;
}
if (currentSlot == 3)
{
Slot3_W = 1;
}
}
}
将
OnTriggerEnter
替换为OnTriggerStay
将不胜感激,因为OnTriggerEnter
仅针对单个帧调用:两个碰撞器接触的帧。如果你不按那个画面上的按钮,什么也不会发生。附近有个傻瓜,快点。那么…你的情况会怎样?根据Unity docs。。。“OnTiggerStay被称为每个碰撞机的‘所有物理更新’(除触动触发器的碰撞机外)。”。。。销毁这么多的游戏对象不会导致性能问题吗…?不是在你的脚本中,你会销毁携带对象的脚本本身,所以一旦它被销毁,就没有脚本可以调用它。如果您正在销毁另一个对象,则会出现NullReference
错误,但此处不会出现该错误。此外,即使调用了destroy,现在的每个物理更新设备都可以很好地处理它,您也可以在Edit>Project Settings>Time>Fixed Timestep
中设置调用物理更新的时间间隔,尽管我不建议这样做,祝您好运,别忘了给我一个绿色的勾号:)谢谢。