void OnSetColor(object[] tempStorage)
    {
        //slider.SetActive (false);
        //slider.GetComponent<Slider> ().enabled = false;
        //slider.GetComponent<Slider> ().value = 0.0f;
        //slider.GetComponent<Slider> ().enabled = true;
        slider.SetActive(true);

        var a = 0;

        new_texture = tempStorage [1].ToString();

        Color color = (Color)tempStorage[0];

        for (var i = 0; i < wrappers.Count; i++)
        {
            if (wrappers[i].texture.name == tempStorage [1].ToString())
            {
                a = i;
            }
        }
        curr_texture = wrappers [a];

        gui_image.SetActive(true);
        gui_image.GetComponent <Image> ().overrideSprite = wrappers [a].sprite;
        gui_image.GetComponent <Image> ().color          = Color.white;
        rend.material.mainTexture = UpdateBlend(color, curr_texture);
    }
Example #2
0
    List <Wrapper_Item_Full_Float> init_textures()
    {
        List <Wrapper_Item_Full_Float> Image_Wrappers = new List <Wrapper_Item_Full_Float>();
        var textures = Resources.LoadAll("surface_textures");

        for (var i = 0; i < textures.Length; i++)
        {
            Texture2D texture            = textures[i] as Texture2D;
            Wrapper_Item_Full_Float item = new Wrapper_Item_Full_Float(texture, primary: true);
            Image_Wrappers.Add(item);
        }
        return(Image_Wrappers);
    }
    /*
     * private void SetTextureImporterFormat( Texture2D texture, bool isReadable)
     * {
     *      if ( null == texture ) return;
     *      string assetPath = AssetDatabase.GetAssetPath( texture );
     *      var tImporter = AssetImporter.GetAtPath( assetPath ) as TextureImporter;
     *      if ( tImporter != null )
     *      {
     *              tImporter.textureType = TextureImporterType.Advanced;
     *              tImporter.isReadable = isReadable;
     *
     *              tImporter.maxTextureSize = 800;
     *              tImporter.wrapMode = TextureWrapMode.Clamp;
     *              tImporter.textureFormat = TextureImporterFormat.ARGB32;
     *
     *              AssetDatabase.ImportAsset( assetPath );
     *              AssetDatabase.Refresh();
     *      }
     * }
     */

    public Wrapper_Item_Full_Float DeepCopy()
    {
        Wrapper_Item_Full_Float other = (Wrapper_Item_Full_Float)this.MemberwiseClone();

        Color[] pixel_array = other.texture.GetPixels();

        other.int_channel = new float[pixel_array.Length];

        for (var n = 0; n < pixel_array.Length; n++)
        {
            //int[] array1 = { pixel_array [n].r,  pixel_array [n].g, pixel_array [n].b };
            //other.int_channel [n] = (int)array1.Average();
            other.int_channel [n] = pixel_array [n].r;
        }
        return(other);
    }
    Texture2D UpdateBlend(Color col, Wrapper_Item_Full_Float set)
    {
        var pixel_array = mat_texture.GetPixels();

        if (previous_texture == new_texture)
        {
            if (first)
            {
                for (var n = 0; n < pixel_count; n++)
                {
                    temp_buffer_1 [0] [n] = temp_buffer_2 [0] [n] - set.intensity [n] * last_color.r * last_color.a + set.intensity [n] * col.r * col.a;
                    temp_buffer_1 [1] [n] = temp_buffer_2 [1] [n] - set.intensity [n] * last_color.g * last_color.a + set.intensity [n] * col.g * col.a;
                    temp_buffer_1 [2] [n] = temp_buffer_2 [2] [n] - set.intensity [n] * last_color.b * last_color.a + set.intensity [n] * col.b * col.a;

                    pixel_array [n].r = temp_buffer_1 [0] [n];
                    pixel_array [n].g = temp_buffer_1 [1] [n];
                    pixel_array [n].b = temp_buffer_1 [2] [n];

                    temp_buffer_2 [0] [n] = temp_buffer_1 [0] [n];
                    temp_buffer_2 [1] [n] = temp_buffer_1 [1] [n];
                    temp_buffer_2 [2] [n] = temp_buffer_1 [2] [n];
                }
            }
            else
            {
                for (var n = 0; n < pixel_count; n++)
                {
                    temp_buffer_1 [0] [n] = temp_buffer_2 [0] [n] - set.intensity [n] * last_color.r * last_color.a + set.intensity [n] * col.r * col.a;
                    temp_buffer_1 [1] [n] = temp_buffer_2 [1] [n] - set.intensity [n] * last_color.g * last_color.a + set.intensity [n] * col.g * col.a;
                    temp_buffer_1 [2] [n] = temp_buffer_2 [2] [n] - set.intensity [n] * last_color.b * last_color.a + set.intensity [n] * col.b * col.a;

                    pixel_array [n].r = temp_buffer_1 [0] [n];
                    pixel_array [n].g = temp_buffer_1 [1] [n];
                    pixel_array [n].b = temp_buffer_1 [2] [n];

                    temp_buffer_2 [0] [n] = temp_buffer_1 [0] [n];
                    temp_buffer_2 [1] [n] = temp_buffer_1 [1] [n];
                    temp_buffer_2 [2] [n] = temp_buffer_1 [2] [n];
                }
            }
            first      = false;
            last_color = col;
        }
        else
        {
            for (var n = 0; n < pixel_count; n++)
            {
                temp_buffer_1 [0] [n] = (temp_buffer_1 [0] [n] + set.intensity [n] * col.r * col.a);
                temp_buffer_1 [1] [n] = (temp_buffer_1 [1] [n] + set.intensity [n] * col.g * col.a);
                temp_buffer_1 [2] [n] = (temp_buffer_1 [2] [n] + set.intensity [n] * col.b * col.a);

                pixel_array [n].r = temp_buffer_1 [0] [n];
                pixel_array [n].g = temp_buffer_1 [1] [n];
                pixel_array [n].b = temp_buffer_1 [2] [n];

                temp_buffer_2 [0][n] = temp_buffer_1 [0] [n];
                temp_buffer_2 [1][n] = temp_buffer_1 [1] [n];
                temp_buffer_2 [2][n] = temp_buffer_1 [2] [n];
            }
            first      = true;
            last_color = Color.black;
        }

        previous_texture = new_texture;
        mat_texture.SetPixels(pixel_array);
        mat_texture.Apply(true);
        return(mat_texture);
    }