C# 当在Unity中按下拾取按钮(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)

我需要让我的游戏对象(拾音器)在玩家进入触发器并按下x键拾音器时被摧毁

这就是我到目前为止得到的。 这是需要销毁的皮卡上的内容:

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
中设置调用物理更新的时间间隔,尽管我不建议这样做,祝您好运,别忘了给我一个绿色的勾号:)谢谢。