motkot
@motkot
Программирование C#.

Как сделать чтобы экземпляр класса был типо не ссылкой, а типо как значимый?

Типо scriptable object и класс это же ссылочный тип. И есть лист предметов и есть для того чтобы их на ui добавлять и после создания обьекта, вызывается метод Render и там параметр Item и есть поле customItem типо должно наследовать почти все с item, но кроме переменных customItem меняет и переменные предмета.

Если не понятно, то вот код:

Inventory.Items.ForEach(item =>
        {
            var Amount = item.Amount;
            Item customItem = item;

            while(true)
            {
                if(Amount >= item.MaxAmount)
                {
                    customItem.Amount = item.MaxAmount;
                    Amount -= item.MaxAmount;

                    var cell = Instantiate(_inventotyCell, _contaner);
                    cell.Render(customItem);//new Item() { Amount = item.MaxAmount, Image = item.Image });
                }
                else
                {
                    customItem.Amount = Amount;
                    Amount = 0;

                    var cell = Instantiate(_inventotyCell, _contaner);
                    cell.Render(customItem);//new Item() { Amount = item.MaxAmount, Image = item.Image });
                }

                if(Amount == 0)
                {
                    break;
                }
            }
        });
  • Вопрос задан
  • 20 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Потому что вот это Item customItem = item; не создание нового экземпляра, а просто копирования ссылки. Если вам нужен новый, то надо создавать его через new
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы