Экземпляр клона не уничтожается при входе в столкновение - PullRequest
0 голосов
/ 09 июля 2020

Попытка уничтожить игрока при ударе по задней стене. Это хорошо работает с игроком, находящимся в сцене с самого начала "мяча"

, но не уничтожает клон мяча, Debug.Log все еще работает, как и в первый раз, и каждый раз, когда он ударяется о стену так он называется, но почему он не уничтожает объект? ballClone это сборный.

есть совет?

public class BackWall : MonoBehaviour
{
public GameObject ball;



public static bool playerDestroyed = false;



public GameObject ballClone;



public void Spawn()
{
  GameObject playerclone = Instantiate(ballClone, new Vector3(-1.5f, 1.1f, -8f), 
Quaternion.identity);
    playerDestroyed = false;

    Destroy(ballClone, 10);


    StartCoroutine(waittoDestroy(7));
}

IEnumerator waittoDestroy(float time)
{
    yield return new WaitForSeconds(time);

    playerDestroyed = true;
}


public void OnCollisionEnter (Collision other)
{
    

    if (other.gameObject.tag == "Player")
    {

        Destroy(ball);
        Destroy(ballClone);

        
        
        playerDestroyed = true;

        Debug.Log("Ball should be destroyed");
    }

    
}

}

1 Ответ

1 голос
/ 09 июля 2020

Как вы это описываете, это звучит так, будто вы пытаетесь уничтожить Prefab Asset ballClone!

То, что вы хотите уничтожить, это созданный Instance этого префаба: playerclone.

Вероятно, вам следует сохранить ссылку на этот экземпляр и использовать, например,

GameObject playerclone;

public void Spawn()
{
    playerclone = Instantiate(ballClone, new Vector3(-1.5f, 1.1f, -8f), Quaternion.identity);
    playerDestroyed = false;

    Destroy(playerclone, 10);  

    StartCoroutine(waittoDestroy(7));
}

IEnumerator waittoDestroy(float time)
{
    yield return new WaitForSeconds(time);

    playerDestroyed = true;
}  

public void OnCollisionEnter (Collision other)
{
    if (!other.gameObject.CompareTag ("Player")) return;
    
    Destroy(ball);
    Destroy(playerclone);       
        
    playerDestroyed = true;

    Debug.Log("Ball should be destroyed");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...