update Readme

This commit is contained in:
Mikhail 2023-12-22 17:31:52 +08:00
parent 3cfdce4024
commit 6fcd27492c
2 changed files with 57 additions and 42 deletions

View File

@ -13,43 +13,46 @@
| Languages: | [Русский](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS) | | Languages: | [Русский](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS) |
| :--- | :--- | :--- | | :--- | :--- | :--- |
Данный [ECS](https://en.wikipedia.org/wiki/Entity_component_system) Фреймворк нацелен на максимальную удобность, модульность, расширяемость и производительность динамического изменения сущностей. Без генерации кода и зависимостей. Данный [ECS](https://en.wikipedia.org/wiki/Entity_component_system) Фреймворк нацелен на максимальную удобность, модульность, расширяемость и производительность динамического изменения сущностей. Без генерации кода и зависимостей. Вднохновлен [LeoEcs](https://github.com/Leopotam/ecslite).
> **Warning**: Проект в стадии разработки. API может меняться. > [!WARNING] Проект в стадии разработки. API может меняться.
> Readme еще не завершен > Readme еще не завершен
## Оглавление ## Оглавление
* [Установка](#Установка) - [DragonECS - C# Entity Component System Framework](#dragonecs---c-entity-component-system-framework)
* [Unity-модуль](#Unity-модуль) - [Оглавление](#оглавление)
* [В виде иходников](#В-виде-иходников) - [Установка](#установка)
* [Версионирование](#Версионирование) - [Версионирование](#версионирование)
* [Основные концепции](#Основные-концепции) - [Основные концепции](#основные-концепции)
* [Entity](#Entity) - [Entity](#entity)
* [Component](#Component) - [Component](#component)
* [System](#System) - [System](#system)
* [Концепции фреймворка](#Концепции-фреймворка) - [Концепции фреймворка](#концепции-фреймворка)
* [Пайплайн](#Пайплайн) - [Пайплайн](#пайплайн)
* [Построение](#Построение) - [Построение](#построение)
* [Внедрение зависимостей](#Внедрение-зависимостей) - [Внедрение зависимостей](#внедрение-зависимостей)
* [Модули](#Модули) - [Модули](#модули)
* [Слои](#Слои) - [Слои](#слои)
* [Процессы](#Процессы) - [Процессы](#процессы)
* [Мир](#Мир) - [Мир](#мир)
* [Пул](#Пул) - [Компоненты мира](#компоненты-мира)
* [Группа](#Группа) - [Пул](#пул)
* [Аспект](#Аспект) - [Аспект](#аспект)
* [Запрос](#Запрос) - [Запросы](#запросы)
* [Корень ECS](#Корень-ECS) - [Группа](#группа)
* [Пример для Unity](#Пример-для-Unity) - [Корень ECS](#корень-ecs)
* [Общий пример](#Общий-пример) - [Пример для Unity](#пример-для-unity)
* [Гибридность](#Гибридность) - [Общий пример](#общий-пример)
* [Debug](#Debug) - [Гибридность](#гибридность)
* [Атрибуты](#Атрибуты) - [Debug](#debug)
* [EcsDebug](#EcsDebug) - [Атрибуты](#атрибуты)
* [Профилирование](#Профилирование) - [EcsDebug](#ecsdebug)
* [Расширения](#Расширения) - [Профилирование](#профилирование)
* [FAQ](#FAQ) - [Расширения](#расширения)
- [FAQ](#faq)
- ['ReadOnlySpan\<\>' could not be found](#readonlyspan-could-not-be-found)
- [Обратная связь](#обратная-связь)
</br></br> </br>
# Установка # Установка
* ### Unity-модуль * ### Unity-модуль
@ -63,7 +66,7 @@ https://github.com/DCFApixels/DragonECS.git
### Версионирование ### Версионирование
В DragonECS применяется следующая семантика версионирования: [Открыть](https://gist.github.com/DCFApixels/e53281d4628b19fe5278f3e77a7da9e8#file-dcfapixels_versioning_ru-md) В DragonECS применяется следующая семантика версионирования: [Открыть](https://gist.github.com/DCFApixels/e53281d4628b19fe5278f3e77a7da9e8#file-dcfapixels_versioning_ru-md)
</br></br> </br>
# Основные концепции # Основные концепции
## Entity ## Entity
@ -140,6 +143,9 @@ class SomeSystem : IEcsPreInitProcess, IEcsInitProcess, IEcsRunProcess, IEcsDest
} }
``` ```
> Для реализации дополнительных процессов перейдите к разделу [Процессы](#Процессы). > Для реализации дополнительных процессов перейдите к разделу [Процессы](#Процессы).
</br>
# Концепции фреймворка # Концепции фреймворка
## Пайплайн ## Пайплайн
Является контейнером и движком систем, определяя поочередность их вызова, предоставляющий механизм для сообщений между системами и механизм внедрения зависимостей. Реализован в виде класса `EcsPipeline`. Является контейнером и движком систем, определяя поочередность их вызова, предоставляющий механизм для сообщений между системами и механизм внедрения зависимостей. Реализован в виде класса `EcsPipeline`.
@ -563,7 +569,7 @@ public class EcsRoot
} }
``` ```
## Гибридность ## Гибридность
Для смешивания архитектурных подходов классического OOP и ECS используется специальный пул `EcsHybridPool<T>`. Принцип работы этого пула несколько отличается от других, он упрощает поддержу наследования и полиморфизма. Для смешивания архитектурных подходов классического OOP и ECS используется специальный пул `EcsHybridPool<T>`. Принцип работы этого пула несколько отличается от других и он упрощает поддержу наследования и полиморфизма.
<details> <details>
<summary>Как это работает?</summary> <summary>Как это работает?</summary>
@ -645,7 +651,7 @@ bool isCamera = _world.GetPool<Camera>().Has(entity);
// ... // ...
``` ```
</br></br> </br>
# Debug # Debug
Фреймворк предоставляет дополнительные инструменты для отладки и логирования, не зависящие от среды. Фреймворк предоставляет дополнительные инструменты для отладки и логирования, не зависящие от среды.
@ -708,7 +714,7 @@ using (marker.Auto())
} }
``` ```
</br></br> </br>
# Расширения # Расширения
* [Автоматическое внедрение зависимостей](https://github.com/DCFApixels/DragonECS-AutoInjections) * [Автоматическое внедрение зависимостей](https://github.com/DCFApixels/DragonECS-AutoInjections)
@ -717,7 +723,7 @@ using (marker.Auto())
* Интеграция с движком Unity (Work in progress) * Интеграция с движком Unity (Work in progress)
<!--* Твое расширение? Если разрабатываешь свои расширения для DragonECS, дай знать и они будут добавлены сюда--> <!--* Твое расширение? Если разрабатываешь свои расширения для DragonECS, дай знать и они будут добавлены сюда-->
</br></br> </br>
# FAQ # FAQ
## 'ReadOnlySpan<>' could not be found ## 'ReadOnlySpan<>' could not be found
@ -727,5 +733,9 @@ The type or namespace name 'ReadOnlySpan<>' could not be found (are you missing
``` ```
Чтобы починить добавте директиву `ENABLE_DUMMY_SPAN` в `Project Settings/Player/Other Settings/Scripting Define Symbols`. Чтобы починить добавте директиву `ENABLE_DUMMY_SPAN` в `Project Settings/Player/Other Settings/Scripting Define Symbols`.
</br></br></br> </br>
# Обратная связь
Discord для дискуссий [https://discord.gg/kqmJjExuCf](https://discord.gg/kqmJjExuCf)
</br></br></br>

View File

@ -5,15 +5,17 @@
<p align="center"> <p align="center">
<img alt="Version" src="https://img.shields.io/github/package-json/v/DCFApixels/DragonECS?color=%23ff4e85&style=for-the-badge"> <img alt="Version" src="https://img.shields.io/github/package-json/v/DCFApixels/DragonECS?color=%23ff4e85&style=for-the-badge">
<img alt="License" src="https://img.shields.io/github/license/DCFApixels/DragonECS?color=ff4e85&style=for-the-badge"> <img alt="License" src="https://img.shields.io/github/license/DCFApixels/DragonECS?color=ff4e85&style=for-the-badge">
<!--<img alt="Discord" src="https://img.shields.io/discord/1111696966208999525?color=%23ff4e85&label=Discord&logo=Discord&logoColor=%23ff4e85&style=for-the-badge">--> <a href="https://discord.gg/kqmJjExuCf"><img alt="Discord" src="https://img.shields.io/discord/1111696966208999525?color=%2300b269&label=Discord&logo=Discord&logoColor=%23ffffff&style=for-the-badge"></a>
</p> </p>
# DragonECS - C# Entity Component System Framework # DragonECS - C# Entity Component System Framework
| Languages: | [Русский](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS) | | Languages: | [Русский](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS) |
| :--- | :--- | :--- | | :--- | :--- | :--- |
The [ECS](https://en.wikipedia.org/wiki/Entity_component_system) Framework aims to maximize usability, modularity, extensibility and performance of dynamic entity changes. Without code generation and dependencies The [ECS](https://en.wikipedia.org/wiki/Entity_component_system) Framework aims to maximize usability, modularity, extensibility and performance of dynamic entity changes. Without code generation and dependencies. Inspired by [LeoEcs](https://github.com/Leopotam/ecslite).
> **Warning**: The project is a work in progress, API may change. > [!WARNING]
> The project is a work in progress, API may change.
>
> While the English version of the README is incomplete, you can view the [Russian version](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md). > While the English version of the README is incomplete, you can view the [Russian version](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md).
# Versioning # Versioning
@ -23,3 +25,6 @@ DragonECS uses this versioning semantics: [Open](https://gist.github.com/DCFApix
* [Classic C# multithreading support](https://github.com/DCFApixels/DragonECS-ClassicThreads) * [Classic C# multithreading support](https://github.com/DCFApixels/DragonECS-ClassicThreads)
* Relations (Work in progress) * Relations (Work in progress)
* Unity integration (Work in progress) * Unity integration (Work in progress)
# Feedback
Discord for discussions [https://discord.gg/kqmJjExuCf](https://discord.gg/kqmJjExuCf)