Краткое введение
DCET — это двунаправленный фреймворк для клиента Unity3D и сервера .Net Core.
DCET и ET: различия
DCET является ответвлением от ET 4.0, 5.0 и 6.0. В нём были произведены следующие изменения:
Начало работы
Настройка среды:
https://github.com/DukeChiang/DCET/archive/dukechiang_master.zip
.git clone https://github.com/DukeChiang/DCET.git
в папку назначения (например, D:/WorkSpace/DCET).https://github.com/DukeChiang/DCET.git
, выберите целевой путь (например, D:/WorkSpace/DCET
) и нажмите Clone. Если Clone не работает, попробуйте способ 2 и используйте функцию Add для визуального управления.https://unity.cn/releases
.https://unity3d.com/get-unity/download/archive
. Для доступа к сайту может потребоваться VPN.https://github.com/AlianBlank/download.unity.com
. Зеркало обновляется каждую неделю.https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16
. Затем установите компоненты, которые могут понадобиться при разработке DCET: поддержка разработки для настольных приложений с использованием .NET, разработка на C++ для настольных систем, использование Unity для разработки игр, разработка C++ для Linux и разработка кроссплатформенных приложений с использованием .Net Core. Рекомендуется установить все эти компоненты.Руководство по запуску:
https://dotnet.microsoft.com/download
. Если после установки .NET Core 3.0 проблема не решена, возможно, требуется обновить Visual Studio до последней версии.Руководство по разработке:
Продвинутое использование:
Например, у персонажа есть список навыков, каждый из которых имеет свой способ действия: прямой или с подзарядкой.
public class Role : Entity
{
// Информация о роли
}
public class SkillComponent : Entity
{
private readonly Dictionary<long, Skill> idSkills = new Dictionary<long, Skill>();
// Методы управления навыками
}
public class Skill : Entity
{
// Информация о навыке
}
public class SkillChargeComponent : Entity
{
public void Start()
{
// Начало зарядки
}
public void End()
{
// Завершение зарядки
}
}
Если навык требует подзарядки, то к нему можно добавить компонент SkillChargeComponent. В противном случае этот компонент не нужен, и логика подзарядки не будет использоваться. Это позволяет легко повторно использовать логику кода и обеспечивает чёткую организацию кода.
Кроме того, Entity имеет жизненный цикл, аналогичный MonoBehaviour в Unity. Однако реализация жизненного цикла в ET немного отличается. Она осуществляется через атрибуты и автоматическое регистрацию на основе этих атрибутов при запуске, а затем выполняется в соответствии с жизненным циклом. Вот пример использования атрибутов для определения жизненного цикла:
[ObjectSystem]
public class TestComponentAwakeSystem : AwakeSystem<TestComponent, string>
{
public override void Awake(TestComponent self, string param1)
{
self.Awake(param1);
}
}
[ObjectSystem]
public class TestComponentLoadSystem : LoadSystem<TestComponent>
{
public override void Load(TestComponent self)
{
self.Load();
}
}
[ObjectSystem]
public class TestComponentUpdateSystem : UpdateSystem<TestComponent>
{
public override void Update(TestComponent self)
{
self.Update();
}
}
[ObjectSystem]
public class TestComponentLateUpdateSystem : LateUpdateSystem<TestComponent>
{
public override void LateUpdate(TestComponent self)
{
self.LateUpdate();
}
}
[ObjectSystem]
public class TestComponentDestroySystem : DestroySystem<TestComponent>
{
public override void Destroy(TestComponent self)
{
self.Destroy();
}
}
EventSystem представляет собой систему событий, которая является важным инструментом для развязки кода. Подобно тому, как в реальном мире существуют тысячи связей между различными аспектами, если все эти связи будут тесно переплетены, это может затруднить поддержку кода. В этом случае код должен быть организован по классам, где ссылки на классы и события (или делегаты) служат мостами между ними. Ссылки на классы представляют собой прямую и простую связь, но если полагаться только на них, это может привести к запутанному коду, трудностям с повторным использованием и сложностям в поддержке. Поэтому события (или делегаты) используются для обеспечения развязки (слабой связи), особенно когда необходимо связать класс с другим классом, который уже связан с третьим классом. Это помогает создать условия для повторного использования и избежать формирования сложной сетевой структуры кода. В результате структура кода становится древовидной, ясной и удобной для повторного использования и поддержки.
В ET система событий реализуется аналогично системе жизненного цикла, описанной выше. Пример использования системы событий:
// Запуск события
Game.EventSystem.Run(EventIdType.Log, "Hello World");
// Обработка события
[Event(EventIdType.Log)]
public class Log_WriteLine: AEvent<string>
{
public override void Run(string param1)
{
Console.WriteLine(param1);
}
}
Это лишь часть текста, переведённая с учётом указанных ограничений. Для получения полного перевода рекомендуется обратиться к специалисту.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )