Если у вас в игре часто используются числа для вывода в UI, то вы, наверное, замечали в профайлере (есть такой, да) аллокации, от которых вы не можете избавиться:

text = health.ToString();

А ведь есть еще и всякие

text = $"{value}/{maxValue}";

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

если health = 0..100, то можно завести массив и брать значение оттуда:

text = arr[health];

или

text = arr[maxValue][value];

Да, мы сделаем некое подобие https://t.me/unsafecsharp/11, но мы не используем объединение строк, т.к. у нас они уже созданы.

Read More  

This is a generic blog article you can use for adding blog content / subjects on your website. You can edit all of this text and replace it with anything you have to say on your blog.

В C# строки хранятся в памяти в единственном экземпляре. Называется интернирование.

Код 

if (str1 == “something” || str2 == “something”)

не будет создавать 2 строки, а будет использовать ссылку на один и тот же объект (да, строка - это Reference Type).

Read More