Size: a a a

Unity Floodилка

2021 May 08

G

GBM in Unity Floodилка
Ну так ты не указал его
источник

G

GBM in Unity Floodилка
Тип ты просто написал поле риджидбади и не сделал его сералайзд или не указал в нет компонент, рекваер компонент
источник

R

R in Unity Floodилка
Ну так пусть среда, при отсутствии явного указателя сама подразумевает присвоение new TypeClass();
источник

R

R in Unity Floodилка
Что мешает, зачем пользователю это вбивать?
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
У тебя есть массив на максимум в 200к юнитов в стратегический игре. Но при этом, 200к это лишь максимальное значение, а в среднем в одной партии 10-20к юнитов. Если бы оно работало как ты сказал, то пришлось бы в оперативной памяти хранить ВСЕ 200к юнитов. А так, ты можешь аллоцировать память только на тех юнитов, которые используются сейчас, и ты не тратишь 90% памяти впустую. Понятная аналогия?
источник

R

R in Unity Floodилка
Конечно, теперь есть причина, по крайней мере
источник

R

R in Unity Floodилка
То есть, до того, как мы указали
TypeClass tc = new TypeClass();
Памяти потребляется гораздо меньше?
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
Когда ты делаешь
TypeClass obj;
то ты обьявляешь лишь указатель на кусок памяти в куче, который указывает на null, в .NET поинтер весит вроде 4-8 байта (в зависимости от 32 или 64 разрядной  версии). В когда ты делаешь
TypeClass obj = new TypeClass();
то помимо тех 4-8 байтов, у тебя аллокатор выделяет память на N байтов, и тут уже зависит от того что внутри класса находится, какие у него поля, каких типов, и тд.
источник

R

R in Unity Floodилка
Я понял, спасибо
источник

R

R in Unity Floodилка
Тогда вопрос в догонку, есть ли какой метод для получения веса переменной в байтах? Условно long y = GetBytes(x);
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
sizeof(byte)
sizeof(char)
sizeof(int)
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
работает только под unsafe средой, и только с анменеджет типами
источник

P

Phantom in Unity Floodилка
new создает объект класса
источник

P

Phantom in Unity Floodилка
Нет, переменная, это переменная, а объект - объект
источник

P

Phantom in Unity Floodилка
Потому что, у тебя могут быть разные типы
источник

P

Phantom in Unity Floodилка
Можно легко и просто сделать вот так
источник

P

Phantom in Unity Floodилка
Object obj = new String("some string");
источник

P

Phantom in Unity Floodилка
Лул нет
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
что нет
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
источник