public void load()
    {
        if (!Tile.generated)
        {
            Tile.tileids            = new Dictionary <string, uint>();
            Tile.tileData           = new Dictionary <uint, TileData>();
            Tile.dynamicFillSprites = new Dictionary <uint, Dictionary <uint, Sprite> >();

            //Generate TileData
            foreach (Data data in tileset)
            {
                if (!data.name.Equals(BLANK))
                {
                    uint tileid = Tile.generateTileID();

                    Material material = Script_SpriteRenderer_GenerateMaterial.generateMaterialReference("tiledata_" + tileid, data.shader, data.mainColor,
                                                                                                         data.isNormalMapped, data.normalMap, data.isShiny, data.shininess, data.specularColor);

                    Sprite sprite = data.sprite;

                    Sprite[] sprites = null;

                    Color fillColor = Color.black;
                    if (data.isTileable)
                    {
                        sprites = new Sprite[TILEABLE_WIDTH * TILEABLE_HEIGHT];
                        for (int x = 0; x < TILEABLE_WIDTH; x++)
                        {
                            for (int y = 0; y < TILEABLE_HEIGHT; y++)
                            {
                                Sprite spr = Sprite.Create(data.sprites, new Rect(x * TILEABLE_PIXELS, y * TILEABLE_PIXELS, TILEABLE_PIXELS, TILEABLE_PIXELS), new Vector2(0, 0), TILEABLE_PIXELS);
                                sprites[y * TILEABLE_WIDTH + x] = spr;
                            }
                        }

                        //Grab Fill Color
                        fillColor = sprites[0].texture.GetPixel(TILEABLE_PIXELS / 2, TILEABLE_PIXELS - TILEABLE_PIXELS / 4);
                    }

                    Tile.tileids.Add(data.name, tileid);
                    Tile.tileData.Add(tileid, new TileData(tileid, data.name, data.isTileable, material, sprite, sprites, fillColor));
                }
            }

            Tile.generated = true;
        }

        loaded = true;
    }
コード例 #2
0
    public override void OnInspectorGUI()
    {
        Script_SpriteRenderer_GenerateMaterial script = (Script_SpriteRenderer_GenerateMaterial)target;

        script.sprite = (Sprite)EditorGUILayout.ObjectField("Sprite", script.sprite, typeof(Sprite), false);

        script.shader = (Shader)EditorGUILayout.ObjectField("Shader", script.shader, typeof(Shader), false);

        script.mainColor = (Color)EditorGUILayout.ColorField("Main Color", script.mainColor);

        script.isNormalMapped = (bool)EditorGUILayout.Toggle("Has a Normal Map?", script.isNormalMapped);
        if (script.isNormalMapped)
        {
            script.normalMap = (Texture)EditorGUILayout.ObjectField("Normal Map", script.normalMap, typeof(Texture), false);
        }

        script.isShiny = (bool)EditorGUILayout.Toggle("Is Shiny?", script.isShiny);
        if (script.isShiny)
        {
            script.specularColor = (Color)EditorGUILayout.ColorField("Specular Color", script.specularColor);
            script.shininess     = (float)EditorGUILayout.Slider("Shininess", script.shininess, 0.01f, 1f);
        }
    }