Как воссоединиться с разрушенными объектами в Unity? - PullRequest
0 голосов
/ 01 февраля 2020

Я сталкиваюсь с проблемой воссоединения разрушенных объектов в единстве.

  1. Сначала я разбил много объектов в единстве, используя оружие.
  2. Теперь я хочу воссоединиться со всеми разрушенными объект, который я сломал ранее (вид ремонта).

Пожалуйста, помогите мне с этим вопросом

1 Ответ

0 голосов
/ 01 февраля 2020

Подумайте не полностью уничтожить gameObject, а просто установить его как неактивный и сохранить ссылку на него где-то еще:

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);
        }
    }
}

Еще один подход, и он может быть более поддерживаемым, будет дать первоначальному объекту - например, зданию - энергетический уровень или какой-то неповрежденный бул, и когда он разрушается, вы меняете его внешний вид и поведение.

Удачи!

...