Notebook: GameLab – Telegram
Notebook: GameLab
32 subscribers
247 photos
1 video
1 file
16 links
Полевая записная книжка разработчика игр
https://news.1rj.ru/str/AnimusMortis
Download Telegram
#Теория
Ключевые слова static и const в С#

На языке C# ключевое слово static и const используется при объявлении методов, переменных и классов.
Static обозначает сущности, которые не могут быть повторены. Они не являются частью какого-либо экземпляра класса. Static часто увеличивает производительность программ, но делает их менее гибкими.
Реализация программного кода статического класса ничем не отличается от программного кода обычного класса за исключением двух основных свойств. В сравнении с нестатическим классом, статический класс имеет следующие свойства (отличия):
• нельзя создавать объекты статического класса;
• статический класс должен содержать только статические члены.

Разница между static и const

Static создает переменную, принадлежащую собственно типу, а не его экземплярам. А const объявляет переменную не доступную для изменения. Единственное, что их объединяет это возможность обращения к ним как из статического контекста, так и из экземпляра класса.
Одно тонкое, но решающее отличие заключается в том, что const вычисляются во время компиляции, тогда как static вычисляются во время выполнения.
👍3
😁21🌚1
#Практика
URP и источники света

Столкнулся с задачей, где необходимо сделать множество источников света на небольшой площади. Unity "из коробки" сильно ограничивает количество источников. При активации новых светил, старые просто отрубаются, что вызывает ощущения нехватки энергии на их поддержание.

В URP изменения кол-ва света до неограниченного появилось не так давно с версией 2021.2.
Для этого необходимо найти asset URP-"уровень графики"-Renderer. В моём случае он назывался URP-HighFidelity-Renderer. В нём в графе Rendering изменить строку Rendering path на Deferred. И вуаля! Всё заработало!

Если хотите иметь ограничение, но изменить его значение можно поиграть с другим параметром:
Находим URP-"уровень графики" в нём параграф Lighting и меняем значение Per Object Limit (от 0 до 8). Мне этого было мало, но возможно кому-то облегчит жизнь.

Помните, что чем больше источников света, тем больше нагрузка на GPU.
🔥1
#Теория

Абстрактный класс и метод

Абстрактным классом называется класс, который содержит один или несколько абстрактных методов.
Абстрактный класс не может использоваться для создания объектов.
Как правило, абстрактный класс описывает некий интерфейс, который должен быть реализован всеми его производными классами.
Абстрактный метод языка C# не имеет тела метода и аналогичен чисто виртуальному методу языка C++.

Чем отличается абстрактный метод от виртуального c#?

Абстрактные методы используются для описания методов, которые должны иметь все производные классы, виртуальный же метод предоставляет возможность переопределить метод в производном классе (изменить поведение объекты - через них в C# реализуется классическая форма полиморфизма). Из этого стоит выходить при выборе какой вид метода (абстрактный или виртуальный) нужно использовать.
Виртуальный метод – это метод, который МОЖЕТ быть переопределен в классе-наследнике. Такой метод может иметь стандартную реализацию в базовом классе. Абстрактный метод – это метод, который ДОЛЖЕН быть реализован в классе-наследнике. При этом, абстрактный метод не может иметь своей реализации в базовом классе (тело пустое), в отличии от виртуального.
👍1
😁2
Я создал свой проект-резюме, в котором привел примеры завершенных мною проектов и их описания.
Рассчитан на ПК, управление стандартное для шутеров или RPG.

Ссылка: https://ssmartproger.ru

Для удобства тех, кто предпочитает читать текст вместо ходьбы по виртуальному пространству, я приложил прямую ссылку на текстовую версию резюме (язык резюме соответствует языку проекта, выбранному в настройках).

Если у вас есть какие-либо комментарии или отзывы по поводу этого проекта, пожалуйста, оставьте их под этим постом.
👍5
#Теория
Ключевого слова partial
Разделяемые классы

Существует несколько ситуаций, когда желательно разделение определения класса.

-При работе над большими проектами распределение класса между различными файлами позволяет нескольким программистам работать с ним одновременно.
-При работе с использованием автоматически создаваемого источника код можно добавлять в класс без повторного создания файла источника. Visual Studio использует этот подход при создании форм Windows Forms, кода оболочки веб-службы и т. д. Можно создать код, который использует эти классы, без необходимости изменения файла, созданного в Visual Studio.
-При использовании генераторов источников для создания дополнительных функциональных возможностей в классе.

Пример:
public partial class Coords
{
private int x;
private int y;

public Coords(int x, int y)
{
this.x = x;
this.y = y;
}
}

public partial class Coords
{
public void PrintCoords()
{
Console.WriteLine("Coords: {0},{1}", x, y);
}
}

class TestCoords
{
static void Main()
{
Coords myCoords = new Coords(10, 15);
myCoords.PrintCoords();

// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
// Output: Coords: 10,15


Подробнее в документации: https://learn.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods
👍1
😱3
Одна ошибка и ты ошибся...
За что так дизайнеры не любят людей с навыком слепой печати?
🫡2
🔥2
😁2
С наступающим новым годом! Что б баги были в радость, а релизы в сладость!) Успехов на работе и новых достижений в личной жизни!
🎉2
Новости:
Компания Unity объявила о новом масштабном сокращении — фирма уволит 25% своих сотрудников, речь идёт про 1800 человек на разных позициях. Это уже четвёртое сокращение в компании за последний год, предыдущее произошло в ноябре 2023-го , когда работу потеряло 265 сотрудников.

Решили что нельзя заработать на установках и решили сократить расходы на персонал?...
Разработчик до приобретения коммерческого опыта:
😁4
👍3
👍3
👍2
https://vk.com/video-173146266_456244796
Когда решил пофиксить баги в легаси проекте
😱1
😁3