Exemplo n.º 1
0
        /// <summary> Returns writer instance. </summary>
        /// <returns> The writer instance. </returns>
        public ThreadWriter AsThreadWriter()
        {
#if ENABLE_UNITY_COLLECTIONS_CHECKS
            Assert.IsTrue(this._useThreads, "Not in thread mode.");
#endif
            return(new ThreadWriter(ref this));
        }
Exemplo n.º 2
0
        public void ShouldWriteImportedMesh()
        {
            const string primitiveName = "Books";
            const string tmpFileName   = "ShouldWriteImportedMesh.vpx";
            var          go            = VpxImportEngine.ImportIntoScene(VpxPath.Primitive, options: ConvertOptions.SkipNone);
            var          ta            = go.GetComponent <TableComponent>();

            ta.TableContainer.Save(tmpFileName);

            var writtenTable = FileTableContainer.Load(tmpFileName);
            var writtenMesh  = writtenTable.Primitive(primitiveName).GetMesh();

            var table        = FileTableContainer.Load(VpxPath.Primitive);
            var originalMesh = table.Primitive(primitiveName).GetMesh();

            Assert.IsTrue(originalMesh.SomewhatEquals(writtenMesh, 0.9f, 4));

            File.Delete(tmpFileName);
            Object.DestroyImmediate(go);
        }
Exemplo n.º 3
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));
            });
        }
Exemplo n.º 4
0
        public void TestInstantiateAtRotation(bool hasComponent)
        {
            GraphBuilder.VariableHandle handle = default;
            var rotation = new quaternion(1f, 2f, 3f, 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 constantPositionValue = b.AddNode(new ConstantQuaternion {
                    Value = rotation
                });

                b.BindVariableToInput(handle, instantiateAt.Prefab);
                b.CreateEdge(enabled.ValuePort, onUpdate.Enabled);
                b.CreateEdge(onUpdate.Output, instantiateAt.Input);
                b.CreateEdge(constantPositionValue.ValuePort, instantiateAt.Rotation);
            },
                                                   (manager, entity, index) =>
            {
                var instance = GetGraphInstance(entity);
                instance.WriteValueToDataSlot(handle.DataIndex, entity);

                if (hasComponent)
                {
                    manager.AddComponent <Rotation>(entity);
                }
            },
                                                   (manager, entity, index) =>
            {
                var e = manager.GetAllEntities().Last();
                Assert.IsTrue(manager.GetComponentData <Rotation>(e).Value.Equals(rotation));
            });
        }