From ad994c98c0ee48d36d235c9821c69e8314855d0c Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 01:09:02 +0800 Subject: [PATCH 01/13] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f099b3f..c5d4006 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@

Version GitHub -Discord +Discord +QQ

# Integration with Unity for [DragonECS](https://github.com/DCFApixels/DragonECS) From 66a42b8db5a45b5ded7fb029d698e481585f80a8 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 01:21:34 +0800 Subject: [PATCH 02/13] Update README-RU.md --- README-RU.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README-RU.md b/README-RU.md index 6e52345..7163d52 100644 --- a/README-RU.md +++ b/README-RU.md @@ -5,8 +5,8 @@

Version GitHub -Discord -QQ +Discord +QQ

# Интеграция с Unity для [DragonECS](https://github.com/DCFApixels/DragonECS) From 29f0b1c56e32e1a40e7d0f16085ce976510e3090 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 01:39:23 +0800 Subject: [PATCH 03/13] Update README-RU.md --- README-RU.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README-RU.md b/README-RU.md index 7163d52..b23b525 100644 --- a/README-RU.md +++ b/README-RU.md @@ -30,6 +30,7 @@ - [Связь с GameObject](#связь-с-gameobject) - [World Provider](#world-provider) - [FixedUpdate LateUpdate ](#fixedupdate-lateupdate) +- [Документация проекта](#документация-проекта) - [FAQ](#faq)
@@ -197,16 +198,16 @@ int e = _world.NewEntity(someSamplate); * Упрощенная реализация: ```c# -// Обязательно добавить [Serializable] к ттипу компонента +// Обязательно добавить [Serializable] к типу компонента. [Serializable] -struct SomeComponent : IEcsComponent { /*...*/ } +struct SomeComponent : IEcsComponent { /* ... */ } class SomeComponentTemplate : ComponentTemplate { } ``` -* Упрощенная реализация для компонентов-тегов: ```c# +// Тоже самое но для компонентов-тегов. [Serializable] -struct SomeTagComponent : IEcsTagComponent { /*...*/ } +struct SomeTagComponent : IEcsTagComponent { } class SomeTagComponentTemplate : TagComponentTemplate { } ``` @@ -215,7 +216,7 @@ class SomeTagComponentTemplate : TagComponentTemplate { } ```c# [Serializable] -struct SomeComponent : IEcsComponent { /*...*/ } +struct SomeComponent : IEcsComponent { /* ... */ } class SomeComponentTemplate : IComponentTemplate { [SerializeField] @@ -234,11 +235,13 @@ class SomeComponentTemplate : IComponentTemplate -В раскрывающемся при нажатии `Add Component` меню выбора компонента поддердивается иерархическое группирование. Производится группирование на основе мета-атрибута `[MetaGroup]`. +В раскрывающемся при нажатии `Add Component` меню выбора компонента поддерживается иерархическое группирование. Производится группирование на основе мета-атрибута `[MetaGroup]`. Компоненты в инспектрре по умолчанию отображаются окрашенными в случайный цвет сгенерированный на основе имени компонента, выбрать другой режим окраски можно в настройках фреймворка. Задать конкретный цвет можно при помощи мета-атрибута `[MetaColor]`. -Если у компонента есть мета-атрибут `[MetaDescription]`, то рядом с крестиком удаления компонента будет иконка подсказки, при наведении курсора отобразится в виде подсказки информация из `[MetaDescription]`. +Если редактор смог автоматически определить связанный с компонентом скрипт, то слева от крестика удаления компонента будет иконка файла. Клик по иконке выделит файл скрипта в папке проекта, двойной клик откроет скрип для редактирования. Связанный файл ищется по сопоставлению имени типа и имени файла скрипта. + +Если у компонента есть мета-атрибут `[MetaDescription]`, то слева от крестика удаления компонента будет иконка подсказки, при наведении курсора покажется информация из `[MetaDescription]`.
@@ -409,6 +412,16 @@ public class EcsRoot : MonoBehaviour
+# Документация проекта +В интеграции так же есть окно документации проекта на основе Мета-Атрибутов. Открывается окно тут `Tools -> DragonECS -> Documentation`. Документация формируется при первом открытии окна и при нажатии кнопки `Update`. + +
+ +# Окно настроек +В окне настроек есть несколько настроек интеграции, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define директив процессора. + +
+ # FAQ ## Не могу повесить EcsEntityConncet или другие компоненты Такое может происходить после обновления пакета, решается либо через `Assets -> Reimport All` или перезапуск окна Unity с удалением папки `*project name*/Library`. From fa683322a39e37616195e6ce32d98f2a5d24be5f Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 01:42:43 +0800 Subject: [PATCH 04/13] Update README-RU.md --- README-RU.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README-RU.md b/README-RU.md index b23b525..68d4c0e 100644 --- a/README-RU.md +++ b/README-RU.md @@ -415,10 +415,18 @@ public class EcsRoot : MonoBehaviour # Документация проекта В интеграции так же есть окно документации проекта на основе Мета-Атрибутов. Открывается окно тут `Tools -> DragonECS -> Documentation`. Документация формируется при первом открытии окна и при нажатии кнопки `Update`. +

+ +

+
# Окно настроек -В окне настроек есть несколько настроек интеграции, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define директив процессора. +В окне настроек есть несколько опций, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define директив процессора. + +

+ +


From c68d33afa131c0813f47aac81f6f5a1f6c568ec3 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 12:01:30 +0800 Subject: [PATCH 05/13] correct spelling --- README-RU.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README-RU.md b/README-RU.md index 68d4c0e..be137a2 100644 --- a/README-RU.md +++ b/README-RU.md @@ -14,7 +14,7 @@ | Languages: | [Русский](https://github.com/DCFApixels/DragonECS-Unity/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS-Unity) | | :--- | :--- | :--- | -Расширение добавит набор инструментов для дебага и связи с движком Unity. +Расширение добавит набор инструментов для отладки и связи с движком Unity. > [!WARNING] > Проект в стадии разработки. API может меняться. @@ -43,7 +43,7 @@ + Минимальная версия C# 7.3; + Минимальная версия Unity 2021.2.0; -Протестированно: +Протестировано: + **Unity:** Минимальная версия 2021.2.0; ## Установка для Unity @@ -52,7 +52,7 @@ ``` https://github.com/DCFApixels/DragonECS-Unity.git ``` -* ### В виде иходников +* ### В виде исходников Фреймворк так же может быть добавлен в проект в виде исходников.
@@ -72,17 +72,17 @@ _pipeline = EcsPipeline.New() .BuildAndInit(); ``` ## Debug Сервис -`UnityDebugService`- реализация [Debug-сервиса для `EcsDebug`](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md#ecsdebug). В редакторе по умолчанию автоматически инициализируется и связывает `EcsDebug.Print` с консолью юнити, `EcsProfilerMarker` c профайлером и т.д. +`UnityDebugService`- реализация [Debug-сервиса для `EcsDebug`](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md#ecsdebug). В редакторе по умолчанию автоматически инициализируется и связывает `EcsDebug.Print` с консолью Unity, `EcsProfilerMarker` c профайлером и т.д. ```c# //Ручная активация. UnityDebugService.Activate(); -//Выведет сообщение в консоле Unity. +//Выведет сообщение в консоли Unity. EcsDebug.Print(); var someMarker = new EcsProfilerMarker("SomeMarker"); someMarker.Begin(); -//время выполнения этого участка будет отражено в профайлере юнити. +//время выполнения этого участка будет отражено в профайлере Unity. someMarker.End(); //Остановка игрового режима. @@ -107,7 +107,7 @@ EcsDebug.Break(); ----- * ### `PipelineProcessMonitor` -Отображает в виде матрицы процессы и сситемы. Системы отображабтся в порядке их выполнения. Точка в пересечении системы и процесса означает что эта система является частью этого процесса. +Отображает в виде матрицы процессы и системы. Системы отображаются в порядке их выполнения. Точка в пересечении системы и процесса означает что эта система является частью этого процесса.

@@ -125,7 +125,7 @@ EcsDebug.Break(); ----- * ### `EntityMonitor` -Показывает состояние сущности мира. На кажду сущность в мире создается отдельынй монитор. Все мониторы сущностей помещаются в монитор мира. +Показывает состояние сущности мира. На каждую сущность в мире создается отдельный монитор. Все мониторы сущностей помещаются в монитор мира.

@@ -153,7 +153,7 @@ int e = _world.NewEntity(someSamplate); По умолчанию расширение содержит 2 вида шаблонов: `ScriptableEntityTemplate`, `MonoEntityTemplate`. ## ScriptableEntityTemplate -Хранится как отдельынй ассет. Наследуется от `ScriptableObject`. +Хранится как отдельный ассет. Наследуется от `ScriptableObject`. Дейсвия чтобы создать `ScriptableEntityTemplate` ассет:

@@ -237,7 +237,7 @@ class SomeComponentTemplate : IComponentTemplate В раскрывающемся при нажатии `Add Component` меню выбора компонента поддерживается иерархическое группирование. Производится группирование на основе мета-атрибута `[MetaGroup]`. -Компоненты в инспектрре по умолчанию отображаются окрашенными в случайный цвет сгенерированный на основе имени компонента, выбрать другой режим окраски можно в настройках фреймворка. Задать конкретный цвет можно при помощи мета-атрибута `[MetaColor]`. +Компоненты в инспекторе по умолчанию отображаются окрашенными в случайный цвет сгенерированный на основе имени компонента, выбрать другой режим окраски можно в настройках фреймворка. Задать конкретный цвет можно при помощи мета-атрибута `[MetaColor]`. Если редактор смог автоматически определить связанный с компонентом скрипт, то слева от крестика удаления компонента будет иконка файла. Клик по иконке выделит файл скрипта в папке проекта, двойной клик откроет скрип для редактирования. Связанный файл ищется по сопоставлению имени типа и имени файла скрипта. @@ -269,11 +269,11 @@ EcsEntityConnect connect = /*...*/; entlong entity = _world.NewEntityLong(); // Связывание сущности с GameObject. -// Автоматически добавляется GameObjectConnect в сущность. -// Автоматическки применяются шаблоны. +// Автоматически добавляется GameObjectConnect в сущность +// и применяются шаблоны. connect.ConnectWith(entity); -// Или создать без применения шаблнов. +// Или создать без применения шаблонов. connect.ConnectWith(entity, false); // Отвязать. @@ -299,7 +299,7 @@ connect.Disconnect(); --- -`AutoEntityCreator` автоматический создает сущность и связывает с GameObject. В инспекторе ему нужно указать `EcsEntityConnect` с которым связывать сущность и [Провайдер мира](#world-provider) в котормо создать сущность. +`AutoEntityCreator` автоматический создает сущность и связывает с GameObject. В инспекторе ему нужно указать `EcsEntityConnect` с которым связывать сущность и [Провайдер мира](#world-provider) в котором создать сущность.
Повесить компонент: Add Component > DragonECS > AutoEntityCreator. From 07ee133eb938e46ac1fc3a696e6cc87a8c63ff70 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 12:09:34 +0800 Subject: [PATCH 06/13] Update README-RU.md --- README-RU.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README-RU.md b/README-RU.md index be137a2..31007a1 100644 --- a/README-RU.md +++ b/README-RU.md @@ -31,6 +31,7 @@ - [World Provider](#world-provider) - [FixedUpdate LateUpdate ](#fixedupdate-lateupdate) - [Документация проекта](#документация-проекта) +- [Окно настроек](#окно-настроек) - [FAQ](#faq)
@@ -174,7 +175,7 @@ int e = _world.NewEntity(someSamplate); ----- ## MonoEntityTemplate -Крепится к GameObject. Наследуется от `MonoBehaviour`. +Крепится к `GameObject`. Наследуется от `MonoBehaviour`.
Повесить компонент: Add Component > DragonECS > MonoEntityTemplate. @@ -194,6 +195,8 @@ int e = _world.NewEntity(someSamplate); ----- ## Шаблон компонента + +### Реализация Чтобы компонент попал в меню `Add Component` нужно реализовать шаблон компонента. Шаблоны компонента это типы реализующие `IComponentTemplate`. * Упрощенная реализация: @@ -234,10 +237,13 @@ class SomeComponentTemplate : IComponentTemplate ```
+
+ +### Кастомизирование отображения В раскрывающемся при нажатии `Add Component` меню выбора компонента поддерживается иерархическое группирование. Производится группирование на основе мета-атрибута `[MetaGroup]`. -Компоненты в инспекторе по умолчанию отображаются окрашенными в случайный цвет сгенерированный на основе имени компонента, выбрать другой режим окраски можно в настройках фреймворка. Задать конкретный цвет можно при помощи мета-атрибута `[MetaColor]`. +Компоненты в инспекторе по умолчанию отображаются окрашенными в случайный цвет сгенерированный на основе имени компонента, выбрать другой режим окраски можно в [окне настроек](#окно-настроек) фреймворка. Задать конкретный цвет можно при помощи мета-атрибута `[MetaColor]`. Если редактор смог автоматически определить связанный с компонентом скрипт, то слева от крестика удаления компонента будет иконка файла. Клик по иконке выделит файл скрипта в папке проекта, двойной клик откроет скрип для редактирования. Связанный файл ищется по сопоставлению имени типа и имени файла скрипта. @@ -245,6 +251,7 @@ class SomeComponentTemplate : IComponentTemplate
+### Применение шаблонов компонентов вне стандартных шаблонов сущностей При необходимости создания кастомного шаблона, шаблоны компонентов поддерживают отображение вне стандартных `MonoEntityTemplate` и `ScriptableEntityTemplate`. ```c# // ComponentTemplateReference добавляет кнопку выбора доступной реализации IComponentTempalte @@ -413,7 +420,7 @@ public class EcsRoot : MonoBehaviour
# Документация проекта -В интеграции так же есть окно документации проекта на основе Мета-Атрибутов. Открывается окно тут `Tools -> DragonECS -> Documentation`. Документация формируется при первом открытии окна и при нажатии кнопки `Update`. +В интеграции так же есть окно документации проекта на основе Мета-Атрибутов. Открыть документацию: `Tools > DragonECS > Documentation`. Документация формируется при первом открытии окна и при нажатии кнопки `Update`.

@@ -422,7 +429,7 @@ public class EcsRoot : MonoBehaviour
# Окно настроек -В окне настроек есть несколько опций, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define директив процессора. +В окне настроек есть несколько опций, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define директив процессора. Открыть документацию: `Tools > DragonECS > Settings`.

From b03f664688825413934e261d0778c6009a51f9e4 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 12:24:18 +0800 Subject: [PATCH 07/13] Update README-RU.md --- README-RU.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README-RU.md b/README-RU.md index 31007a1..703c1b8 100644 --- a/README-RU.md +++ b/README-RU.md @@ -429,7 +429,7 @@ public class EcsRoot : MonoBehaviour
# Окно настроек -В окне настроек есть несколько опций, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define директив процессора. Открыть документацию: `Tools > DragonECS > Settings`. +В окне настроек есть несколько опций, включая возможность менять режимы отображения компонентов в инспекторе. Внизу расположены удобные переключатели для используемых в фреймворке define значения для директив процессора. Открыть документацию: `Tools > DragonECS > Settings`.

From 71b8d76a975692ede14c4e3a88365f03ce5e0e11 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 16 Jun 2024 15:26:45 +0800 Subject: [PATCH 08/13] fix readme --- README-RU.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README-RU.md b/README-RU.md index 703c1b8..8c091ec 100644 --- a/README-RU.md +++ b/README-RU.md @@ -41,7 +41,7 @@ ## Окружение Обязательные требования: + Зависимость: [DragonECS](https://github.com/DCFApixels/DragonECS) -+ Минимальная версия C# 7.3; ++ Минимальная версия C# 8.0; + Минимальная версия Unity 2021.2.0; Протестировано: diff --git a/README.md b/README.md index c5d4006..49c9a12 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Versioning semantics - [Open](https://gist.github.com/DCFApixels/e53281d4628b19f ## Environment Requirements: + Dependency: [DragonECS](https://github.com/DCFApixels/DragonECS) -+ Minimum version of C# 7.3; ++ Minimum version of C# 8.0; + Minimum version of Unity 2021.2.0; Tested with: From 198c470e7f68e9396da9cf42cb55709e96fff9fc Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Tue, 13 Aug 2024 22:16:58 +0800 Subject: [PATCH 09/13] fix reconnect --- src/Connectors/EcsEntityConnect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Connectors/EcsEntityConnect.cs b/src/Connectors/EcsEntityConnect.cs index 50fa666..03822fe 100644 --- a/src/Connectors/EcsEntityConnect.cs +++ b/src/Connectors/EcsEntityConnect.cs @@ -145,8 +145,8 @@ namespace DCFApixels.DragonECS { var unityGameObjects = _world.GetPool(); unityGameObjects.TryDel(oldEntityID); - _connectedEntities.Remove(GetInstanceID()); } + _connectedEntities.Remove(GetInstanceID()); _world = null; _entity = entlong.NULL; } From 40481cdf099c83494a8e6f71cc3741dcb5054707 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Tue, 13 Aug 2024 22:17:47 +0800 Subject: [PATCH 10/13] up version to 0.4.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f15b6cf..9a5395f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "displayName": "DragonECS-Unity", "description": "Integration with Unity for DragonECS", "unity": "2021.2", - "version": "0.4.1", + "version": "0.4.2", "repository": { "type": "git", "url": "https://github.com/DCFApixels/DragonECS-Unity.git" From 4930c3d165ff8535d800904c0dfadcaebd34a3ef Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sat, 24 Aug 2024 21:37:36 +0800 Subject: [PATCH 11/13] update readme --- README-RU.md | 43 ++++++++++++++++++++++++++++++++----------- README.md | 25 +++++++++++++++++++++++-- 2 files changed, 55 insertions(+), 13 deletions(-) diff --git a/README-RU.md b/README-RU.md index 8c091ec..b55dad2 100644 --- a/README-RU.md +++ b/README-RU.md @@ -11,14 +11,35 @@ # Интеграция с Unity для [DragonECS](https://github.com/DCFApixels/DragonECS) -| Languages: | [Русский](https://github.com/DCFApixels/DragonECS-Unity/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS-Unity) | -| :--- | :--- | :--- | + + + + + + + + + + +
Readme Languages:
+ +
+ Русский +
+
+ +
+ English(WIP) +
+
+ +
Расширение добавит набор инструментов для отладки и связи с движком Unity. > [!WARNING] > Проект в стадии разработки. API может меняться. -> Readme еще не завершен +> Readme еще не завершен, если есть не ясные моменты, вопросы можно задать тут [Обратная связь](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md#%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C) # Оглавление - [Установка](#установка) @@ -137,25 +158,25 @@ EcsDebug.Break();
# Шаблоны -Шаблоны - это настраиваемые наборы компонентов которые можно применить к сущностям. Шаблоны должны реализовавыть интерфейс `ITemplateNode`. +Шаблоны - это настраиваемые наборы компонентов которые можно применить к сущностям. Шаблоны должны реализовывать интерфейс `ITemplateNode`. ```c# -ITemplateNode someSamplate = /*...*/; +ITemplateNode someTemplate = /*...*/; //... foreach (var e in _world.Where(out Aspect a)) { // Применение шаблона сущности. - someSamplate.Apply(e, _world.id); + someTemplate.Apply(e, _world.id); } ``` ```c# // Применение шаблона сразу при создании сущности. -int e = _world.NewEntity(someSamplate); +int e = _world.NewEntity(someTemplate); ``` По умолчанию расширение содержит 2 вида шаблонов: `ScriptableEntityTemplate`, `MonoEntityTemplate`. ## ScriptableEntityTemplate Хранится как отдельный ассет. Наследуется от `ScriptableObject`. -Дейсвия чтобы создать `ScriptableEntityTemplate` ассет: +Действия чтобы создать `ScriptableEntityTemplate` ассет:

Создать ассет: Asset > Create > DragonECS > ScriptableEntityTemplate. @@ -252,9 +273,9 @@ class SomeComponentTemplate : IComponentTemplate
### Применение шаблонов компонентов вне стандартных шаблонов сущностей -При необходимости создания кастомного шаблона, шаблоны компонентов поддерживают отображение вне стандартных `MonoEntityTemplate` и `ScriptableEntityTemplate`. +При необходимости создания пользовательского шаблона, шаблоны компонентов поддерживают отображение вне стандартных `MonoEntityTemplate` и `ScriptableEntityTemplate`. ```c# -// ComponentTemplateReference добавляет кнопку выбора доступной реализации IComponentTempalte +// ComponentTemplateReference добавляет кнопку выбора доступной реализации IComponentTemplate // и отображает шаблон компонента аналогично компонентам в MonoEntityTemplate или ScriptableEntityTemplate. [SerializeReference, ComponentTemplateReference] private IComponentTempalte _someComponent1; @@ -439,4 +460,4 @@ public class EcsRoot : MonoBehaviour # FAQ ## Не могу повесить EcsEntityConncet или другие компоненты -Такое может происходить после обновления пакета, решается либо через `Assets -> Reimport All` или перезапуск окна Unity с удалением папки `*project name*/Library`. +Такое иногда может происходить после обновления пакета, решается либо через `Assets -> Reimport All` или перезапуск окна Unity с удалением папки `*project name*/Library`. diff --git a/README.md b/README.md index 49c9a12..ed6d6ee 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,29 @@ # Integration with Unity for [DragonECS](https://github.com/DCFApixels/DragonECS) -| Languages: | [Русский](https://github.com/DCFApixels/DragonECS-Unity/blob/main/README-RU.md) | [English(WIP)](https://github.com/DCFApixels/DragonECS-Unity) | -| :--- | :--- | :--- | + + + + + + + + + + +
Readme Languages:
+ +
+ Русский +
+
+ +
+ English(WIP) +
+
+ +
The extension will add a set of tools for debugging and communicating with the Unity engine. From 855695ea7e4fe33953dbaeebb698295a7423fdaa Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Mon, 9 Sep 2024 09:56:33 +0800 Subject: [PATCH 12/13] fix Cannot get managed reference index with out bounds offset --- .../Templates/ComponentTemplateBase.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/EntityTemplate/Templates/ComponentTemplateBase.cs b/src/EntityTemplate/Templates/ComponentTemplateBase.cs index 39404d3..8d7ec95 100644 --- a/src/EntityTemplate/Templates/ComponentTemplateBase.cs +++ b/src/EntityTemplate/Templates/ComponentTemplateBase.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Runtime.InteropServices; using UnityEngine; using static DCFApixels.DragonECS.IComponentTemplate; @@ -50,11 +51,14 @@ namespace DCFApixels.DragonECS #endregion } [Serializable] + [StructLayout(LayoutKind.Sequential)] public abstract class ComponentTemplateBase : ComponentTemplateBase { protected static TypeMeta Meta = EcsDebugUtility.GetTypeMeta(); [SerializeField] protected T component; + [SerializeField] + private byte _offset; // Fucking Unity drove me crazy with the error "Cannot get managed reference index with out bounds offset". This workaround helps avoid that error. #region Properties public sealed override Type Type { get { return typeof(T); } } @@ -66,14 +70,8 @@ namespace DCFApixels.DragonECS #endregion #region Methods - public override object GetRaw() - { - return component; - } - public override void SetRaw(object raw) - { - component = (T)raw; - } + public sealed override object GetRaw() { return component; } + public sealed override void SetRaw(object raw) { component = (T)raw; } #endregion } @@ -86,7 +84,7 @@ namespace DCFApixels.DragonECS } } public abstract class TagComponentTemplate : ComponentTemplateBase - where T : struct, IEcsTagComponent + where T : struct, IEcsTagComponent { public override void Apply(short worldID, int entityID) { From 88e64578266cdb2206cd23a795b37dbf21561298 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Mon, 9 Sep 2024 09:57:40 +0800 Subject: [PATCH 13/13] up version to 0.4.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a5395f..47c9522 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "displayName": "DragonECS-Unity", "description": "Integration with Unity for DragonECS", "unity": "2021.2", - "version": "0.4.2", + "version": "0.4.3", "repository": { "type": "git", "url": "https://github.com/DCFApixels/DragonECS-Unity.git"