mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2026-04-22 01:45:55 +08:00
Update readme
This commit is contained in:
parent
91d196e1a9
commit
0ecf5e378f
36
README-RU.md
36
README-RU.md
@ -75,7 +75,7 @@ DragonECS - это [ECS](https://en.wikipedia.org/wiki/Entity_component_system)
|
|||||||
- [Расширение фреймворка](#расширение-фреймворка)
|
- [Расширение фреймворка](#расширение-фреймворка)
|
||||||
- [Компоненты мира](#компоненты-мира)
|
- [Компоненты мира](#компоненты-мира)
|
||||||
- [Конфиги](#конфиги)
|
- [Конфиги](#конфиги)
|
||||||
- [Проекты на DragonECS](#Проекты-на-DragonECS)
|
- [Проекты на DragonECS](#проекты-на-dragonecs)
|
||||||
- [FAQ](#faq)
|
- [FAQ](#faq)
|
||||||
- [Обратная связь](#обратная-связь)
|
- [Обратная связь](#обратная-связь)
|
||||||
- [Лицензия](#лицензия)
|
- [Лицензия](#лицензия)
|
||||||
@ -912,6 +912,40 @@ var tags = typeMeta.Tags; // [MetaTags]
|
|||||||
```
|
```
|
||||||
> Для автоматической генерации уникальных идентификаторов MetaID есть метод `MetaID.GenerateNewUniqueID()` и [Браузерный генератор](https://dcfapixels.github.io/DragonECS-MetaID_Generator_Online/)
|
> Для автоматической генерации уникальных идентификаторов MetaID есть метод `MetaID.GenerateNewUniqueID()` и [Браузерный генератор](https://dcfapixels.github.io/DragonECS-MetaID_Generator_Online/)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>[MetaProxy]</summary>
|
||||||
|
|
||||||
|
`[MetaProxy(typeof(MetaProxyType))]` атрибут для гибкой настройки метаданных. Он позволяет обходить ограничения обычных атрибутов (например, невозможность передавать в них неконстантные данные) и задавать метаданные программно. Кроме того, метаданные, полученные через `MetaProxy`, наследуются.
|
||||||
|
|
||||||
|
API напоминает `[DebuggerTypeProxy]`, но вместо экземпляра объекта принимает тип `Type`. А класс для `MetaProxy` должен наследовать `MetaProxyBase`.
|
||||||
|
|
||||||
|
Пример использования:
|
||||||
|
|
||||||
|
``` c#
|
||||||
|
// Применение атрибута
|
||||||
|
[MetaProxy(typeof(UnityComponent<>.MetaProxy))]
|
||||||
|
// В данном примере UnityComponent оборачивает компонент Unity
|
||||||
|
public struct UnityComponent<T> where T : Component
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// Реализация MetaProxyBase. MetaProxy копирует метаданные оборачиваемого типа,
|
||||||
|
// чтобы в инспекторе Unity отображалась его мета.
|
||||||
|
private class MetaProxy : MetaProxyBase
|
||||||
|
{
|
||||||
|
protected TypeMeta Meta = typeof(T).GetMeta();
|
||||||
|
public override string Name { get { return Meta?.Name; } }
|
||||||
|
public override MetaColor? Color { get { return Meta != null && Meta.IsCustomColor ? Meta.Color : null; } }
|
||||||
|
public override MetaGroup Group { get { return Meta?.Group; } }
|
||||||
|
public override MetaDescription Description { get { return Meta?.Description; } }
|
||||||
|
public override IEnumerable<string> Tags { get { return Meta?.Tags; } }
|
||||||
|
public MetaProxy(Type type) : base(type) { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
## EcsDebug
|
## EcsDebug
|
||||||
Вспомогательный тип с набором методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы - это посредники между EcsDebug и инструментами отладки среды. Такая реализация позволяет не изменяя отладочный код, менять его поведение или переносить проект в другие среды, достаточно только реализовать соответствующий Debug-сервис.
|
Вспомогательный тип с набором методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы - это посредники между EcsDebug и инструментами отладки среды. Такая реализация позволяет не изменяя отладочный код, менять его поведение или переносить проект в другие среды, достаточно только реализовать соответствующий Debug-сервис.
|
||||||
|
|
||||||
|
|||||||
38
README-ZH.md
38
README-ZH.md
@ -72,7 +72,7 @@ DragonECS 是一个[实体组件系统](https://www.imooc.com/article/331544)框
|
|||||||
- [集合](#集合)
|
- [集合](#集合)
|
||||||
- [ECS入口](#ECS入口)
|
- [ECS入口](#ECS入口)
|
||||||
- [Debug](#debug)
|
- [Debug](#debug)
|
||||||
- [元属性](#元属性)
|
- [Meta Attributes](#meta-attributes)
|
||||||
- [EcsDebug](#ecsdebug)
|
- [EcsDebug](#ecsdebug)
|
||||||
- [性能分析](#性能分析)
|
- [性能分析](#性能分析)
|
||||||
- [Define Symbols](#define-symbols)
|
- [Define Symbols](#define-symbols)
|
||||||
@ -798,7 +798,7 @@ public class EcsRoot
|
|||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
该框架提供了额外的调试和日志记录工具,不依赖于环境此外,许多类型都有自己的 DebuggerProxy,以便在 IDE 中更详细地显示信息。
|
该框架提供了额外的调试和日志记录工具,不依赖于环境此外,许多类型都有自己的 DebuggerProxy,以便在 IDE 中更详细地显示信息。
|
||||||
## 元属性
|
## Meta Attributes
|
||||||
默认情况下,元属性没有用处,在与引擎集成时用于指定在调试工具和编辑器中的显示方式。还可以用于生成自动文档。
|
默认情况下,元属性没有用处,在与引擎集成时用于指定在调试工具和编辑器中的显示方式。还可以用于生成自动文档。
|
||||||
``` c#
|
``` c#
|
||||||
using DCFApixels.DragonECS;
|
using DCFApixels.DragonECS;
|
||||||
@ -837,6 +837,40 @@ var tags = typeMeta.Tags; // [MetaTags]
|
|||||||
```
|
```
|
||||||
> 为了自动生成唯一的标识符 MetaID,可以使用 `MetaID.GenerateNewUniqueID()` 方法和 [浏览器生成器](https://dcfapixels.github.io/DragonECS-MetaID_Generator_Online/)。
|
> 为了自动生成唯一的标识符 MetaID,可以使用 `MetaID.GenerateNewUniqueID()` 方法和 [浏览器生成器](https://dcfapixels.github.io/DragonECS-MetaID_Generator_Online/)。
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>MetaProxy</summary>
|
||||||
|
|
||||||
|
`[MetaProxy(typeof(MetaProxyType))]` 特性用于灵活配置元数据。它允许绕过常规特性的限制(例如无法向其传递非常量数据),并以编程方式设置元数据。此外,通过 `MetaProxy` 获得的元数据是可继承的。
|
||||||
|
|
||||||
|
该 API 类似于 `[DebuggerTypeProxy]`,但不同之处在于它接受的是 `Type` 类型,而不是对象实例。`MetaProxy` 的类必须继承自 `MetaProxyBase`。
|
||||||
|
|
||||||
|
使用示例:
|
||||||
|
|
||||||
|
``` c#
|
||||||
|
// 应用特性
|
||||||
|
[MetaProxy(typeof(UnityComponent<>.MetaProxy))]
|
||||||
|
// 在此示例中,UnityComponent 包装了一个 Unity 组件
|
||||||
|
public struct UnityComponent<T> where T : Component
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// MetaProxyBase 的实现。MetaProxy 复制被包装类型的元数据,
|
||||||
|
// 以便在 Unity 检查器中显示其元数据。
|
||||||
|
private class MetaProxy : MetaProxyBase
|
||||||
|
{
|
||||||
|
protected TypeMeta Meta = typeof(T).GetMeta();
|
||||||
|
public override string Name { get { return Meta?.Name; } }
|
||||||
|
public override MetaColor? Color { get { return Meta != null && Meta.IsCustomColor ? Meta.Color : null; } }
|
||||||
|
public override MetaGroup Group { get { return Meta?.Group; } }
|
||||||
|
public override MetaDescription Description { get { return Meta?.Description; } }
|
||||||
|
public override IEnumerable<string> Tags { get { return Meta?.Tags; } }
|
||||||
|
public MetaProxy(Type type) : base(type) { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
## EcsDebug
|
## EcsDebug
|
||||||
具有调试和日志记录方法集. 实现为一个静态类,调用 DebugService 的方法. DebugService 是环境调试系统与 EcsDebug 之间的中介. 这使得可以将项目移植到其他引擎上,而无需修改项目的调试代码,只需要实现特定的 DebugService 即可。
|
具有调试和日志记录方法集. 实现为一个静态类,调用 DebugService 的方法. DebugService 是环境调试系统与 EcsDebug 之间的中介. 这使得可以将项目移植到其他引擎上,而无需修改项目的调试代码,只需要实现特定的 DebugService 即可。
|
||||||
|
|
||||||
|
|||||||
35
README.md
35
README.md
@ -871,6 +871,41 @@ var tags = typeMeta.Tags; // [MetaTags]
|
|||||||
```
|
```
|
||||||
> To simplify generate unique MetaID values, use `MetaID.GenerateNewUniqueID()` or the [Browser Generator](https://dcfapixels.github.io/DragonECS-MetaID_Generator_Online/).
|
> To simplify generate unique MetaID values, use `MetaID.GenerateNewUniqueID()` or the [Browser Generator](https://dcfapixels.github.io/DragonECS-MetaID_Generator_Online/).
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>[MetaProxy]</summary>
|
||||||
|
|
||||||
|
The `[MetaProxy(typeof(MetaProxyType))]` attribute enables flexible metadata configuration. It allows bypassing the limitations of regular attributes (for example, the inability to pass non-constant data into them) and setting metadata programmatically. Furthermore, metadata obtained via `MetaProxy` is inherited.
|
||||||
|
|
||||||
|
The API resembles `[DebuggerTypeProxy]`, but instead of an object instance, it accepts a Type. The class for `MetaProxy` must inherit from `MetaProxyBase`.
|
||||||
|
|
||||||
|
Usage example:
|
||||||
|
|
||||||
|
``` c#
|
||||||
|
// Applying the attribute
|
||||||
|
[MetaProxy(typeof(UnityComponent<>.MetaProxy))]
|
||||||
|
// In this example, UnityComponent wraps a Unity component
|
||||||
|
public struct UnityComponent<T> where T : Component
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// Implementation of MetaProxyBase. MetaProxy copies the metadata of the wrapped type
|
||||||
|
// so that its metadata is displayed in the Unity inspector.
|
||||||
|
private class MetaProxy : MetaProxyBase
|
||||||
|
{
|
||||||
|
protected TypeMeta Meta = typeof(T).GetMeta();
|
||||||
|
public override string Name { get { return Meta?.Name; } }
|
||||||
|
public override MetaColor? Color { get { return Meta != null && Meta.IsCustomColor ? Meta.Color : null; } }
|
||||||
|
public override MetaGroup Group { get { return Meta?.Group; } }
|
||||||
|
public override MetaDescription Description { get { return Meta?.Description; } }
|
||||||
|
public override IEnumerable<string> Tags { get { return Meta?.Tags; } }
|
||||||
|
public MetaProxy(Type type) : base(type) { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
## EcsDebug
|
## EcsDebug
|
||||||
Provides methods for debugging and logging. Implemented as a static class that forwards calls to a Debug service. Debug services act as intermediaries between environment-specific debugging systems and EcsDebug, enabling portability.
|
Provides methods for debugging and logging. Implemented as a static class that forwards calls to a Debug service. Debug services act as intermediaries between environment-specific debugging systems and EcsDebug, enabling portability.
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user