运行附件中的Test
结果#1:
[00] * Create Entity1 (IntsArchetype)
[01] Notify - Add Int on Entity:1 - Means that the creation of entity has been detected.
[02] * Create ObserverLock
[03] * Create CreationContext
[04] * Create Entity2 (IntsArchetype)
[05] * Change Archetype for Entity1 (Add FTestFragment_Bool)
[06] <--- 'Add' notification of FTestFragment_Bool on Entity1 should be received before Entity3 created, but it's missing.
[07] * Create Entity3 (IntsArchetype)
[08] * Change Archetype for Entity2 (Add FTestFragment_Float)
[09] * Change Archetype for Entity3 (Add FTestFragment_Float)
[10] * Destroy CreationContext
[11] * Change Archetype for Entity1 (Add FTestFragment_Float)
[12] * Create Entity4 (IntsArchetype)
[13] * Destroy ObserverLock
[14] Notify - Add Float on Entity:2
[15] Notify - Add Float on Entity:3
[16] Notify - Add Int on Entity:2 - Means that the creation of entity has been detected.
[17] Notify - Add Int on Entity:3 - Means that the creation of entity has been detected. <-- 位于这一条之后的通知被跳过了
[18] Notify - Add Float on Entity:1
[19] Notify - Add Int on Entity:4 - Means that the creation of entity has been detected.
结果#2:
[00] * Create Entity1 (IntsArchetype)
[01] Notify - Add Int on Entity:1 - Means that the creation of entity has been detected.
[02] * Create ObserverLock
[03] * Create CreationContext
[04] * Create Entity2 (IntsArchetype)
[05] * Change Archetype for Entity1 (Add FTestFragment_Bool)
[06] <--- 'Add' notification of FTestFragment_Bool on Entity1 should be received before Entity3 created, but it's missing.
[07] * Create Entity3 (IntsArchetype)
[08] * Change Archetype for Entity2 (Add FTestFragment_Float)
[09] * Change Archetype for Entity3 (Add FTestFragment_Float)
[10] * Destroy CreationContext
[11] * Change Archetype for Entity1 (Add FTestFragment_Float)
[12] * Create Entity4 (IntsArchetype)
[13] * Destroy ObserverLock
[14] Notify - Add Float on Entity:2
[15] Notify - Add Float on Entity:3
[16] Notify - Add Int on Entity:2 - Means that the creation of entity has been detected.
[17] Notify - Add Int on Entity:3 - Means that the creation of entity has been detected. <-- 位于该条之前的操作,被延后了,涉及Entity创建的操作是被合并在一起通知的
[18] Notify - Add Bool on Entity:1
[19] Notify - Add Float on Entity:1
[20] Notify - Add Int on Entity:4 - Means that the creation of entity has been detected.
期望的结果:
[00] * Create Entity1 (IntsArchetype)
[01] Notify - Add Int on Entity:1 - Means that the creation of entity has been detected.
[02] * Create ObserverLock
[03] * Create CreationContext
[04] * Create Entity2 (IntsArchetype)
[05] * Change Archetype for Entity1 (Add FTestFragment_Bool)
[06] <--- 'Add' notification of FTestFragment_Bool on Entity1 should be received before Entity3 created, but it's missing.
[07] * Create Entity3 (IntsArchetype)
[08] * Change Archetype for Entity2 (Add FTestFragment_Float)
[09] * Change Archetype for Entity3 (Add FTestFragment_Float)
[10] * Destroy CreationContext
[11] * Change Archetype for Entity1 (Add FTestFragment_Float)
[12] * Create Entity4 (IntsArchetype)
[13] * Destroy ObserverLock
[14] Notify - Add Float on Entity:2
[15] Notify - Add Float on Entity:3
[16] Notify - Add Int on Entity:2 - Means that the creation of entity has been detected.
[17] Notify - Add Bool on Entity:1
[18] Notify - Add Int on Entity:3 - Means that the creation of entity has been detected.
[19] Notify - Add Float on Entity:1
[20] Notify - Add Int on Entity:4 - Means that the creation of entity has been detected.