Вот сам скрипт добавления в лист элемента.
Синтаксис:
Используется csharp
RaycastHit hit;
if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out hit,1))
{
if(hit.collider.GetComponent<Item>() != null)
{
items.Add(hit.collider.GetComponent<Item>());
Destroy(hit.collider.gameObject);
}
}
if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out hit,1))
{
if(hit.collider.GetComponent<Item>() != null)
{
items.Add(hit.collider.GetComponent<Item>());
Destroy(hit.collider.gameObject);
}
}
Я уже понял, что ошибка в том, что я сохраняю в лист именно ссылку на компонент и после удаляю объект с этим компонентом и поэтому пропадает и ссылка на компонент. Но как я писал в начале, у некоторых этот скрипт работал!!!
Также я уже понял самый легкий способ выхода из этой ситуации, это создать какой-нибудь пустой объект в котором будут хранится компоненты, но все же это не экономно, да и выглядит глупо и в будущем вызовет еще не мало проблем. Так что можете, что-нибудь посоветовать для решения этой проблемы?