首页 > 解决方案 > 如何在 Unity 中重新加入破碎的对象?

问题描述

我在重新加入统一中的破碎物体时遇到问题。

  1. 第一次我用枪统一粉碎了许多物体。
  2. 现在我想重新加入我之前打破的所有破碎的物体(修复它)。

请帮我解决这个问题

标签: c#visual-studiounity3dblender

解决方案


考虑不要完全销毁游戏对象,而只是将其设置为非活动状态,并将对它的引用存储在其他地方:

public class Destructible : MonoBehaviour
{
    // Class based on your code sample above.

    public GameObject destroyedVersion;

    void OnMouseDown()
    {
        GameObject destroyedObject = Instantiate(
            destroyedVersion, transform.position, transform.rotation);

        Destroyed destroyed = destroyedObject.GetComponent<Destroyed>();
        destroyed.SetOrigin(this);

        gameObject.SetActive(false);
    }
}

public class Destroyed : MonoBehavior
{
    Destructible destructible = null;

    public void SetOrigin(Destructible destructible)
    {
        this.destructible = destructible;
    }


    // This method can now be called from anywhere to rebuild:    
    public void RebuildOrigin()
    {
        if (destructible != null)
        {
            destructible.gameObject.SetActive(true);

            Destroy(gameObject);
        }
    }
}

还有一种方法,它可能更易于维护,是给原始对象——例如建筑——一个能量级别或某种完整的布尔值,当它被破坏时,你会改变它的外观和行为。

祝你好运!


推荐阅读