Ejemplo n.º 1
0
        public void EventTypeRegistryTest()
        {
            var registry = new EventDataTypes.EventTypeRegistry(Allocator.TempJob);

            Debug.Log($"Size of EventDataSegment Type : {UnsafeUtility.SizeOf<EventDataTypes.EventDataSegmentInfo>()}");
            Debug.Log($"Registering TypeID:{2}");
            Debug.Log($"Adding int type to TypeID:{2}");

            registry.RegisterEventType(2).RegisterNextDataType <int>().RegisterNextDataType <ulong>();

            var infoBack = registry.GetTypeInfo(2);

            Debug.Log($"Offsets of TypeID:2 is {infoBack.GetOffset<int>(0)}:{infoBack.GetOffset<ulong>(1)}:{infoBack.GetUnsafeOffset(2)}");

            Assert.AreEqual(0, infoBack.GetOffset <int>(0));
            Assert.AreEqual(4, infoBack.GetOffset <ulong>(1));
            Assert.AreEqual(12, infoBack.GetUnsafeOffset(2));
            Assert.Throws <UnityEngine.Assertions.AssertionException>(() => infoBack.GetOffset <int>(2));
            Assert.Throws <UnityEngine.Assertions.AssertionException>(() => infoBack.GetUnsafeOffset(3));

            Assert.Throws <UnityEngine.Assertions.AssertionException>(() => registry.GetTypeInfo(0));
            Assert.Throws <UnityEngine.Assertions.AssertionException>(() => registry.GetTypeInfo(1));
        }