You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
| using System.IO;
 | |
| using UnityEditor;
 | |
| using UnityEngine;
 | |
| 
 | |
| public class ExampleEditorScript : MonoBehaviour
 | |
| {
 | |
|     [MenuItem("Tools/PalletteTexture")]
 | |
|     static void CreateTexture3D()
 | |
|     {
 | |
|         int size = 256;
 | |
|         int sizeSub = size - 1;
 | |
|         TextureFormat format = TextureFormat.RGBA32;
 | |
|         TextureWrapMode wrapMode = TextureWrapMode.Clamp;
 | |
| 
 | |
|         Texture2D texture = new Texture2D(size, size, format, false);
 | |
|         texture.wrapMode = wrapMode;
 | |
| 
 | |
|         var size2D = size * size;
 | |
|         Color[] colors = new Color[size2D];
 | |
|         for (int i = 0; i < size2D; i++)
 | |
|         {
 | |
|             colors[i] = Color.clear;
 | |
|         }
 | |
|         var image = Resources.Load<Texture2D>("Pallette/palette");
 | |
|         var pixels = image.GetPixels(); //must be size
 | |
|         for (int i = 0; i < size; i++)
 | |
|         {
 | |
|             var color = pixels[i];
 | |
|             var x = color.r * sizeSub;
 | |
|             var y = color.b * sizeSub;
 | |
|             var cood = (int)(x * size + y);
 | |
|             var value = i * 1f / size;
 | |
|             colors[cood] = new Color(value, value, value, 1);
 | |
|         }
 | |
| 
 | |
|         texture.SetPixels(colors);
 | |
|         texture.Apply();
 | |
|         byte[] bytes = texture.EncodeToPNG();
 | |
|         var dirPath = Application.dataPath + "/Resources/Pallette/";
 | |
|         File.WriteAllBytes(dirPath + "PalletteTex.png", bytes);
 | |
|     }
 | |
| } |