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))); } }
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))); }
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>(); }