Уничтожение обьекта после соприкосновения с полом

У меня есть падающие обьекты, которые регенерируются постоянно в рандом позиции, через Random.Range. Обьект у меня типа GameObject, добавил метод OnCollisionEnter2D, в котором указал, что если тег "other" геймобджекта равняется "floor", то у меня должен уничтожатся обьект. Вместо этого мне выдаёт ошибку:

Destroying assets is not permitted to avoid data loss. If you really want to remove an asset use DestroyImmediate (theObject, true);

На сколько я понял, я удаляю именно этот обьект, можно как нибудь пофиксить?

Сразу скажу, программирование я пока что только учу, так что если что то очевидное, не бейте пожалуйста :>

Код:

public GameObject Spike;
public float fspeed;
private float timeSpawn = 45f;
    
public Rigidbody2D rb;
public GameObject player;
public float speed;
public float jforce;

void Start () {
    rb.GetComponent<Rigidbody2D> ();
}

void OnCollisionEnter2D(Collision2D other) {
    if (other.gameObject.tag == "Floor")
        Destroy (Spike);
    if (other.gameObject.tag == "FallSp") {
        Destroy (player);
        SceneManager.LoadScene (0);
    }
}

void FixedUpdate () {
    float RandPos = Random.Range (9.87f, -9.87f);
    timeSpawn = timeSpawn + 1f;
    if (timeSpawn == 45f)
        Instantiate (Spike, new Vector2 (RandPos, 7.96f), Quaternion.identity);
    if (timeSpawn > 45f)
        timeSpawn = timeSpawn = 1f;
    if(Input.GetMouseButton(0))
        rb.AddForce (Vector2.up * jforce * Time.deltaTime);
    float xPos = Input.GetAxis ("Horizontal");
    player.transform.Translate (new Vector2 (xPos, 0f) * speed * Time.deltaTime);
}

IEnumerator Iek() {
    yield return new WaitForSeconds (1f);
}

Код


Ответы (1 шт):

Автор решения: Gabitov Shamil

Вы удаляете префаб в ассетах а не обьект

→ Ссылка