У меня есть массив объектов, я их спавню через InvokeRepeating, и мне надо удалять объект когда он дотронется колладера.
Я создаю клон префаба объекта, потом этот клон когда дотрагивается коллайдера, то он не удаляется, а удаляется тот клон, который только что заспавнился в другом месте, нигде не могу найти решения, помогите, пожалуйста
ItemSpawn.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ItemSpawn : MonoBehaviour
{
public GameObject[] clothes; //объекты, кторые надо спавнить
public Transform objspawn;// координата для спавна
public float spawnrate;//частота спавна
public float speed;// скорость движения объекта
public int rand;//рандом для clothes
public GameObject duplObj; //клон clothes
public int i;
void Start()
{
//спавн объектов через заданное время spawnrate
InvokeRepeating("SpawnObj", 1f, spawnrate);
}
void Update()
{
i = rand;
}
void SpawnObj()
{
//сам спавн
rand = Random.Range(0, clothes.Length);
//тут создается клон объекта
duplObj= Instantiate(clothes[i], objspawn.position, transform.rotation);
}
}
ItemMovement.cs, который прикреплен к объекту
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ItemMovement : MonoBehaviour
{
ItemSpawn itemSpawn;
void Start()
{
itemSpawn = GameObject.Find("Main Camera").GetComponent<ItemSpawn>();//для определения нахождения скрипта на объекте
}
private void FixedUpdate()
{
transform.Translate(itemSpawn.speed * Time.deltaTime, 0, 0);//движение объекта
}
//Здесь происходит уничтожение клона, если он соприкасается с объектом, у которого тег Destroy
private void OnTriggerEnter2D(Collider2D collis)
{
if (collis.gameObject.tag == "Destroy")
{
Destroy(itemSpawn.duplObj);
}
}
}