Пример #1
0
        protected override void OnCreate()
        {
            base.OnCreate();

            // Default types
            ComponentType[] componentTypes = new ComponentType[] {
                typeof(RenderMesh),
                typeof(LocalToWorld),
                typeof(Translation),
                typeof(RenderBounds),
                typeof(MainColorMaterialProperty),
            };

            // Add additional
            if (AdditionalArchetypeTypes.Length > 0)
            {
                var oldSize = componentTypes.Length;
                Array.Resize(ref componentTypes, oldSize + AdditionalArchetypeTypes.Length);
                for (int i = oldSize; i < componentTypes.Length; i++)
                {
                    componentTypes[i] = AdditionalArchetypeTypes[i - oldSize];
                }
            }

            // Create archetype
            _meshArchetype = EntityManager.CreateArchetype(componentTypes);

            if (CreateDefaultMesh)
            {
                _mesh = MeshCreator.Quad(Extends, quaternion.Euler(new float3(math.radians(90), 0, 0)));
            }
        }
Пример #2
0
        protected override void OnCreate()
        {
            RequireSingletonForUpdate <MapSettings>();
            _unitArchetype = EntityManager.CreateArchetype(
                // Custom
                typeof(UnitTag), typeof(MovementSpeed), typeof(MiningSpeed), typeof(MapIndex),
                // FSM
                typeof(IdleTag),
                // 3D properties
                typeof(LocalToWorld), typeof(Translation), typeof(Rotation),
                // Rendering
                typeof(RenderMesh), typeof(RenderBounds), typeof(TileMaterialProperty), typeof(AnimationSpeedMaterialProperty),
                typeof(RowsColumns_Tex_AnimMaterialProperty)
                );

            _unitMesh = MeshCreator.Quad(EXTENDS, quaternion.Euler(new float3(math.radians(90), 0, 0)));
        }
Пример #3
0
        protected override void OnCreate()
        {
            _mesh = MeshCreator.Quad(EXTEND, quaternion.Euler(new float3(math.radians(90), 0, 0)));

            _pathTileArchetype = EntityManager.CreateArchetype(
                typeof(RenderMesh),
                typeof(LocalToWorld),
                typeof(Translation),
                typeof(RenderBounds),
                typeof(MainColorMaterialProperty)
                );

            _random = new Unity.Mathematics.Random();
            _random.InitState();

            _material = new Material(Shader.Find("Tile/AStarVisual"))
            {
                enableInstancing = true
            };

            _cmdBufferSystem = World.GetExistingSystem <EndInitializationEntityCommandBufferSystem>();
        }