diff --git a/DragonECS.csproj b/DragonECS.csproj
index 2d828ec..802eccf 100644
--- a/DragonECS.csproj
+++ b/DragonECS.csproj
@@ -10,7 +10,7 @@
DCFApixels.DragonECS
DragonECS
- 0.8.62
+ 0.8.63
DCFApixels
ECS Framework for Game Engines with C# and .Net Platform
DCFApixels
diff --git a/README-RU.md b/README-RU.md
index 7939506..63fe803 100644
--- a/README-RU.md
+++ b/README-RU.md
@@ -1036,7 +1036,7 @@ public struct WorldComponent : IEcsWorldComponent
* [Классическая C# многопоточность](https://github.com/DCFApixels/DragonECS-ClassicThreads)
* [Recursivity](https://github.com/DCFApixels/DragonECS-Recursivity)
* [Hybrid](https://github.com/DCFApixels/DragonECS-Hybrid)
- * Графы (Work in progress)
+ * [Графы](https://github.com/DCFApixels/DragonECS-Graphs)
* Утилиты:
* [Упрощенный синтаксис](https://gist.github.com/DCFApixels/d7bfbfb8cb70d141deff00be24f28ff0)
* [Однокадровые компоненты](https://gist.github.com/DCFApixels/46d512dbcf96c115b94c3af502461f60)
diff --git a/README-ZH.md b/README-ZH.md
index 5e4b530..8b1e58c 100644
--- a/README-ZH.md
+++ b/README-ZH.md
@@ -1003,7 +1003,7 @@ public struct WorldComponent : IEcsWorldComponent
* [经典C#多线程](https://github.com/DCFApixels/DragonECS-ClassicThreads)
* [Recursivity](https://github.com/DCFApixels/DragonECS-Recursivity)
* [Hybrid](https://github.com/DCFApixels/DragonECS-Hybrid)
- * Graphs (Work in progress)
+ * [Graphs](https://github.com/DCFApixels/DragonECS-Graphs)
* Utilities:
* [简单语法](https://gist.github.com/DCFApixels/d7bfbfb8cb70d141deff00be24f28ff0)
* [单帧组件](https://gist.github.com/DCFApixels/46d512dbcf96c115b94c3af502461f60)
diff --git a/README.md b/README.md
index b7cc9a0..9bdb823 100644
--- a/README.md
+++ b/README.md
@@ -1008,7 +1008,7 @@ public struct WorldComponent : IEcsWorldComponent
* [Classic C# multithreading](https://github.com/DCFApixels/DragonECS-ClassicThreads)
* [Recursivity](https://github.com/DCFApixels/DragonECS-Recursivity)
* [Hybrid](https://github.com/DCFApixels/DragonECS-Hybrid)
- * Graphs (Work in progress)
+ * [Graphs](https://github.com/DCFApixels/DragonECS-Graphs)
* Utilities:
* [Simple syntax](https://gist.github.com/DCFApixels/d7bfbfb8cb70d141deff00be24f28ff0)
* [One-Frame Components](https://gist.github.com/DCFApixels/46d512dbcf96c115b94c3af502461f60)
diff --git a/package.json b/package.json
index 6ede5d7..4b521eb 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
"displayName": "DragonECS",
"description": "C# Entity Component System Framework",
"unity": "2020.3",
- "version": "0.8.62",
+ "version": "0.8.63",
"repository": {
"type": "git",
"url": "https://github.com/DCFApixels/DragonECS.git"
diff --git a/src/DebugUtils/TypeMeta.cs b/src/DebugUtils/TypeMeta.cs
index 17d22fc..58a981f 100644
--- a/src/DebugUtils/TypeMeta.cs
+++ b/src/DebugUtils/TypeMeta.cs
@@ -520,14 +520,23 @@ namespace DCFApixels.DragonECS
string id = atr.ID;
if (type.IsGenericType && type.IsGenericTypeDefinition == false)
{
- id = $"{id}<{string.Join(", ", type.GetGenericArguments().Select(o => GetMetaID(o)))}>";
+ var metaIds = type.GetGenericArguments().Select(o => GetMetaID(o));
+ if(metaIds.Any(o => string.IsNullOrEmpty(o)))
+ {
+ id = string.Empty;
+ }
+ else
+ {
+ id = $"{id}<{string.Join(", ", metaIds)}>";
+ }
}
- if (_idTypePairs.TryGetValue(id, out Type otherType) && type != otherType) //этот ексепшен не работает, так как атрибуты не кешируются а пересоздаются
+ if (string.IsNullOrEmpty(id) == false &&
+ _idTypePairs.TryGetValue(id, out Type otherType) && type != otherType)
{
Throw.Exception($"Types {type.ToMeta().TypeName} and {otherType.ToMeta().TypeName} have duplicate {atr.ID} MetaID.");
}
- _idTypePairs[atr.ID] = type;
- return atr.ID;
+ _idTypePairs[id] = type;
+ return id;
}
#else
EcsDebug.PrintWarning($"Reflection is not available, the {nameof(MetaGenerator)}.{nameof(GetMetaID)} method does not work.");