using Unity.Burst; using Unity.Jobs; using NUnit.Framework; using Unity.Collections; #pragma warning disable 0649 internal class NativeContainerTests_ValidateTypes : NativeContainerTests_ValidateTypesFixture { enum MyTestEnum { HellWorld } struct Vector3 { public float x, y, z; } struct Matrix4x4 { public float m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15; } [BurstCompile(CompileSynchronously = true)] struct StructWithVariousStructsAndValueTypesJob : IJob { [ReadOnly] public NativeArray nativeArrayRO; public NativeArray nativeArrayRW; #pragma warning disable 0169 // field is never used Vector3 vec3; float floatVal; Matrix4x4 matrix; int intValue; byte byteValue; short shortValue; MyTestEnum myEnum; #pragma warning restore 0169 // field is never used public void Execute() {} } [BurstCompile(CompileSynchronously = true)] struct StructEmptyJob : IJob { public void Execute() {} } [Test] public void Scheduling_With_Supported_Types() { var temp1 = CollectionHelper.CreateNativeArray(1, CommonRwdAllocator.Handle); var temp2 = CollectionHelper.CreateNativeArray(1, CommonRwdAllocator.Handle); var types = new StructWithVariousStructsAndValueTypesJob(); types.nativeArrayRO = temp1; types.nativeArrayRW = temp2; types.Schedule().Complete(); new StructEmptyJob().Schedule().Complete(); temp1.Dispose(); temp2.Dispose(); } }