/// <summary> Returns writer instance. </summary> /// <returns> The writer instance. </returns> public IndexWriter AsIndexWriter() { #if ENABLE_UNITY_COLLECTIONS_CHECKS Assert.IsFalse(this._useThreads, "Not in index mode."); #endif return(new IndexWriter(ref this)); }
public void TestInstantiateAtNonUniformScale(bool hasComponent) { GraphBuilder.VariableHandle handle = default; var scale = new float3(1f, 2f, 4f); SetupTestGraphDefinitionMultipleFrames((b, _) => { handle = b.BindVariableToDataIndex("TestEntity"); var onUpdate = b.AddNode(new OnUpdate()); var enabled = b.AddNode(new ConstantBool { Value = true }); var instantiateAt = b.AddNode(new InstantiateAt()); var scaleValue = b.AddNode(new ConstantFloat3 { Value = scale }); b.BindVariableToInput(handle, instantiateAt.Prefab); b.CreateEdge(enabled.ValuePort, onUpdate.Enabled); b.CreateEdge(onUpdate.Output, instantiateAt.Input); b.CreateEdge(scaleValue.ValuePort, instantiateAt.Scale); }, (manager, entity, index) => { var instance = GetGraphInstance(entity); instance.WriteValueToDataSlot(handle.DataIndex, entity); if (hasComponent) { manager.AddComponent <Scale>(entity); manager.AddComponent <NonUniformScale>(entity); } }, (manager, entity, index) => { var e = manager.GetAllEntities().Last(); Assert.IsTrue(manager.GetComponentData <NonUniformScale>(e).Value.Equals(scale)); Assert.IsFalse(manager.HasComponent <Scale>(e)); }); }