예제 #1
0
        public void CreateTest()
        {
            var block = BlockModel.Create(0, 0);

            // Act
            var button = new BlockButton(block, Color.Black);

            // Assert
            Assert.AreEqual(Color.Black, button.ActiveColor);
        }
예제 #2
0
    public static void Initialize()
    {
        const int entitiesToCreate = 10;

        var entityManager = World.Active.GetOrCreateManager <EntityManager>();

        var meshArchetype = entityManager.CreateArchetype(typeof(MeshInstanceRenderer), typeof(Vertex), typeof(Uv), typeof(Normal), typeof(Triangle), typeof(Position), typeof(MeshScale));

        var meshEntities = new NativeArray <Entity>(entitiesToCreate, Allocator.Temp);

        entityManager.CreateEntity(meshArchetype, meshEntities);

        var material = new Material(Shader.Find("Standard"));
        var model    = BlockModel.Create();

        for (var index = 0; index < entitiesToCreate; index++)
        {
            var entity = meshEntities[index];

            var mesh = new Mesh();
            mesh.MarkDynamic();

            entityManager.SetSharedComponentData(entity, new MeshInstanceRenderer
            {
                mesh     = mesh,
                material = material,
            });

            var vertices = entityManager.GetBuffer <Vertex>(entity).Reinterpret <float3>();
            vertices.AddRange(model.Vertices);

            var normals = entityManager.GetBuffer <Normal>(entity).Reinterpret <float3>();
            normals.AddRange(model.Normals);

            var uvs = entityManager.GetBuffer <Uv>(entity).Reinterpret <float3>();
            uvs.AddRange(model.Uvs);

            var triangles = entityManager.GetBuffer <Triangle>(entity).Reinterpret <int>();
            triangles.AddRange(model.Triangles);

            entityManager.SetComponentData(entity, new Position {
                Value = new float3(index * 2, 0, 0)
            });

            entityManager.SetComponentData(entity, new MeshScale
            {
                Step = Random.Range(0.005f, 0.01f),
                Max  = Random.Range(60, 600),
                //Period = Random.Range(0.5f, 2f) * (Random.Range(0,2) == 1 ? 1 : -1),
            });
        }

        meshEntities.Dispose();
        model.Dispose();
    }
        /// <summary>
        /// Adds the row to the top
        /// </summary>
        /// <param name="shapeModel">The shape model.</param>
        public static void AddRowTop(this ShapeModel shapeModel)
        {
            var maxColumns = shapeModel.LastColumn();

            shapeModel.Blocks.ForEach(b => b.Row = b.Row + 1);
            for (var col = 0; col < maxColumns; col++)
            {
                var newBlock = BlockModel.Create(col + 1, 1);
                shapeModel.Blocks.Add(newBlock);
            }
        }
예제 #4
0
        public void SetActiveColor()
        {
            var block  = BlockModel.Create(0, 0);
            var button = new BlockButton(block, Color.Black);

            // Act
            button.ActiveColor = Color.Red;

            // Assert
            Assert.AreEqual(button.ActiveColor, Color.Red);
        }
        /// <summary>
        /// Adds the column.
        /// </summary>
        /// <param name="shapeModel">The shape model.</param>
        public static void AddColumnLeft(this ShapeModel shapeModel)
        {
            var maxRow = shapeModel.LastRow();

            shapeModel.Blocks.ForEach(b => b.Column = b.Column + 1);

            for (var row = 0; row < maxRow; row++)
            {
                var newBlock = BlockModel.Create(1, row + 1);
                shapeModel.Blocks.Add(newBlock);
            }
        }
        /// <summary>
        /// Adds the row at the bottom
        /// </summary>
        /// <param name="shapeModel">The shape model.</param>
        public static void AddRowBottom(this ShapeModel shapeModel)
        {
            var maxRow     = shapeModel.LastRow();
            var maxColumns = shapeModel.LastColumn();

            var newRow = maxRow + 1;

            for (var col = 0; col < maxColumns; col++)
            {
                var newBlock = BlockModel.Create(col + 1, newRow);
                shapeModel.Blocks.Add(newBlock);
            }
        }
        /// <summary>
        /// Adds the column.
        /// </summary>
        /// <param name="shapeModel">The shape model.</param>
        public static void AddColumnRight(this ShapeModel shapeModel)
        {
            var maxRow     = shapeModel.LastRow();
            var maxColumns = shapeModel.LastColumn();

            var newColumn = maxColumns + 1;

            for (var row = 0; row < maxRow; row++)
            {
                var newBlock = BlockModel.Create(newColumn, row + 1);
                shapeModel.Blocks.Add(newBlock);
            }
        }