示例#1
0
        /// <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));
        }
示例#2
0
        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));
            });
        }