public void Setup() { OrderedContiguous = CreateContiguousGameObjectStructs(ObjectCount); RandomizedContiguous = CreateContiguousGameObjectStructs(ObjectCount); RandomShuffle(RandomizedContiguous, new Unity.Mathematics.Random(RandomizerSeed)); OrderedNonContiguous = CreateNonContiguousGameObjectStructs(ObjectCount); RandomizedNonContiguous = CreateNonContiguousGameObjectStructs(ObjectCount); RandomShuffle(RandomizedNonContiguous, new Unity.Mathematics.Random(RandomizerSeed)); }
private static NonContiguousList <GameObjectStruct> CreateNonContiguousGameObjectStructs(int count) { var l = new NonContiguousList <GameObjectStruct>(Unity.Collections.Allocator.Persistent); for (int i = 0; i < count; i++) { l.Add(new GameObjectStruct { Velocity = new float3(1.0f, 0.0f, 1.0f), Random = new MockRandom((uint)i + 1) }); } return(l); }
public unsafe static void RandomShuffle(NonContiguousList <GameObjectStruct> l, Unity.Mathematics.Random r) { for (int i = 0; i < l.Length; i++) { var idx = r.NextInt(0, l.Length); var tmp0 = l.mData[idx]; var tmp1 = l.mData[i]; tmp0->Random = new MockRandom((uint)i + 1); l.mData[i] = tmp0; tmp1->Random = new MockRandom((uint)idx + 1); l.mData[idx] = tmp1; } }