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