├── .gitattributes ├── .gitignore ├── .vsconfig ├── Assets ├── Palette.meta ├── Palette │ ├── ColorCutQuantizer.cs │ ├── ColorCutQuantizer.cs.meta │ ├── ColorHistogram.cs │ ├── ColorHistogram.cs.meta │ ├── ColorUtils.cs │ ├── ColorUtils.cs.meta │ ├── Palette.cs │ └── Palette.cs.meta ├── Scenes.meta ├── Scenes │ ├── SampleScene.unity │ └── SampleScene.unity.meta ├── TestImages.meta ├── TestImages │ ├── Screenshot 2021-12-11 215359.png │ ├── Screenshot 2021-12-11 215359.png.meta │ ├── Screenshot 2021-12-17 185911.png │ └── Screenshot 2021-12-17 185911.png.meta ├── TestScript.cs └── TestScript.cs.meta ├── LICENSE ├── Logs ├── ApiUpdaterCheck.txt ├── AssetImportWorker0-prev.log ├── AssetImportWorker0.log ├── Packages-Update.log ├── shadercompiler-AssetImportWorker0.log ├── shadercompiler-UnityShaderCompiler.exe0.log ├── shadercompiler-UnityShaderCompiler.exe1.log ├── shadercompiler-UnityShaderCompiler.exe2.log ├── shadercompiler-UnityShaderCompiler.exe3.log ├── shadercompiler-UnityShaderCompiler.exe4.log ├── shadercompiler-UnityShaderCompiler.exe5.log ├── shadercompiler-UnityShaderCompiler.exe6.log └── shadercompiler-UnityShaderCompiler.exe7.log ├── Packages ├── manifest.json └── packages-lock.json ├── Preview ├── Screenshot 2021-12-19 160946.png └── Screenshot 2021-12-19 161054.png ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md └── UserSettings └── EditorUserSettings.asset /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | Assets/AssetStoreTools* 7 | 8 | # Visual Studio cache directory 9 | .vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | *.opendb 26 | *.VC.db 27 | 28 | # Unity3D generated meta files 29 | *.pidb.meta 30 | *.pdb.meta 31 | 32 | # Unity3D Generated File On Crash Reports 33 | sysinfo.txt 34 | 35 | # Builds 36 | *.apk 37 | *.unitypackage 38 | -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Assets/Palette.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b01a1ce69dbe9b499f7c9667b6b346f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Palette/ColorCutQuantizer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UnityEngine; 5 | using static OokiiTsuki.Palette.Palette; 6 | 7 | namespace OokiiTsuki.Palette 8 | { 9 | public class ColorCutQuantizer 10 | { 11 | private static float[] mTempHsl = new float[3]; 12 | private const float BLACK_MAX_LIGHTNESS = 0.05f; 13 | private const float WHITE_MIN_LIGHTNESS = 0.95f; 14 | private const int COMPONENT_RED = -3; 15 | private const int COMPONENT_GREEN = -2; 16 | private const int COMPONENT_BLUE = -1; 17 | private static int[] colors; 18 | private static Dictionary mColorPopulations; 19 | public List QuantizedColors { get; private set; } 20 | 21 | 22 | ///Factory-method to generate a from a object. 23 | ///Texture to extract the pixel data from 24 | ///The maximum number of colors that should be in the result palette. 25 | public static ColorCutQuantizer FromTexture2D(Texture2D texture, int maxColors) 26 | { 27 | Color[] pixels = texture.GetPixels(); 28 | int[] intPixels = new int[pixels.Length]; 29 | 30 | for (int i = 0; i < pixels.Length; i++) 31 | intPixels[i] = ((Color32)pixels[i]).ToInt(); 32 | 33 | return new ColorCutQuantizer(new ColorHistogram(intPixels), maxColors); 34 | } 35 | 36 | /// Private constructor. 37 | /// histogram representing an image's pixel data 38 | /// The maximum number of colors that should be in the result palette. 39 | private ColorCutQuantizer(ColorHistogram colorHistogram, int maxColors) 40 | { 41 | if (colorHistogram == null) 42 | { 43 | throw new ArgumentException("colorHistogram can not be null"); 44 | } 45 | if (maxColors < 1) 46 | { 47 | throw new ArgumentException("maxColors must be 1 or greater"); 48 | } 49 | int rawColorCount = colorHistogram.NumberOfColors; 50 | int[] rawColors = colorHistogram.Colors; 51 | int[] rawColorCounts = colorHistogram.ColorCounts; 52 | // First, lets pack the populations into a Dictionary so that they can be easily 53 | // retrieved without knowing a color's index 54 | mColorPopulations = new Dictionary(); 55 | for (int i = 0; i < rawColors.Length; i++) 56 | { 57 | mColorPopulations.Add(rawColors[i], rawColorCounts[i]); 58 | } 59 | // Now go through all of the colors and keep those which we do not want to ignore 60 | colors = new int[rawColorCount]; 61 | int validColorCount = 0; 62 | foreach (int color in rawColors) 63 | { 64 | if (!ShouldIgnoreColor(color)) 65 | { 66 | colors[validColorCount++] = color; 67 | } 68 | } 69 | if (validColorCount <= maxColors) 70 | { 71 | // The image has fewer colors than the maximum requested, so just return the colors 72 | QuantizedColors = new List(); 73 | foreach (int color in colors) 74 | { 75 | QuantizedColors.Add(new Swatch(color, mColorPopulations[color])); 76 | } 77 | } 78 | else 79 | { 80 | // We need use quantization to reduce the number of colors 81 | QuantizedColors = QuantizePixels(validColorCount - 1, maxColors); 82 | } 83 | } 84 | private List QuantizePixels(int maxColorIndex, int maxColors) 85 | { 86 | // Create the sorted set which is sorted by volume descending. This means we always 87 | // split the largest box in the queue 88 | SortedSet vboxes = new SortedSet(); 89 | // To start, add a box which contains all of the colors 90 | vboxes.Add(new Vbox(0, maxColorIndex)); 91 | // Now go through the boxes, splitting them until we have reached maxColors or there are no 92 | // more boxes to split 93 | vboxes = SplitBoxes(vboxes, maxColors); 94 | 95 | // Finally, return the average colors of the color boxes 96 | return GenerateAverageColors(vboxes); 97 | } 98 | private SortedSet SplitBoxes(SortedSet vboxes, int maxSize) 99 | { 100 | 101 | while (vboxes.Count < maxSize) 102 | { 103 | Vbox vbox = vboxes.Max(); 104 | vboxes.Remove(vbox); 105 | if (vbox != null && vbox.CanSplit()) 106 | { 107 | // First split the box, and add the result 108 | vboxes.Add(vbox.SplitBox()); 109 | // Then add the box back 110 | vboxes.Add(vbox); 111 | } 112 | else 113 | { 114 | // If we get here then there are no more boxes to split, so return 115 | return vboxes; 116 | } 117 | } 118 | return vboxes; 119 | } 120 | 121 | private List GenerateAverageColors(SortedSet vboxes) 122 | { 123 | List colors = new List(vboxes.Count); 124 | 125 | while (vboxes.Count > 0) 126 | { 127 | var vbox = vboxes.Max(); 128 | vboxes.Remove(vbox); 129 | Swatch color = vbox.GetAverageColor(); 130 | if (!ShouldIgnoreColor(color)) 131 | { 132 | // As we're averaging a color box, we can still get colors which we do not want, so 133 | // we check again here 134 | colors.Add(color); 135 | } 136 | } 137 | return colors; 138 | } 139 | 140 | /// Represents a tightly fitting box around a color space. 141 | private class Vbox : IComparable 142 | { 143 | private int lowerIndex; 144 | private int upperIndex; 145 | private int minRed, maxRed; 146 | private int minGreen, maxGreen; 147 | private int minBlue, maxBlue; 148 | public Vbox(int lowerIndex, int upperIndex) 149 | { 150 | this.lowerIndex = lowerIndex; 151 | this.upperIndex = upperIndex; 152 | FitBox(); 153 | } 154 | int IComparable.CompareTo(Vbox other) 155 | { 156 | return this.GetVolume() - other.GetVolume(); 157 | } 158 | int GetVolume() 159 | { 160 | return (maxRed - minRed + 1) * (maxGreen - minGreen + 1) * (maxBlue - minBlue + 1); 161 | } 162 | public bool CanSplit() 163 | { 164 | return GetColorCount() > 1; 165 | } 166 | int GetColorCount() 167 | { 168 | return upperIndex - lowerIndex; 169 | } 170 | 171 | ///Recomputes the boundaries of this box to tightly fit the colors within the box. 172 | void FitBox() 173 | { 174 | // Reset the min and max to opposite values 175 | minRed = minGreen = minBlue = 0xFF; 176 | maxRed = maxGreen = maxBlue = 0x0; 177 | for (int i = lowerIndex; i <= upperIndex; i++) 178 | { 179 | int color = colors[i]; 180 | int r = color.Red(); 181 | int g = color.Green(); 182 | int b = color.Blue(); 183 | if (r > maxRed) 184 | { 185 | maxRed = r; 186 | } 187 | if (r < minRed) 188 | { 189 | minRed = r; 190 | } 191 | if (g > maxGreen) 192 | { 193 | maxGreen = g; 194 | } 195 | if (g < minGreen) 196 | { 197 | minGreen = g; 198 | } 199 | if (b > maxBlue) 200 | { 201 | maxBlue = b; 202 | } 203 | if (b < minBlue) 204 | { 205 | minBlue = b; 206 | } 207 | } 208 | } 209 | 210 | ///Split this color box at the mid-point along it's longest dimension 211 | ///the new ColorBox 212 | public Vbox SplitBox() 213 | { 214 | if (!CanSplit()) 215 | { 216 | throw new InvalidOperationException("Can not split a box with only 1 color"); 217 | } 218 | // find median along the longest dimension 219 | int splitPoint = FindSplitPoint(); 220 | Vbox newBox = new Vbox(splitPoint + 1, upperIndex); 221 | // Now change this box's upperIndex and recompute the color boundaries 222 | upperIndex = splitPoint; 223 | FitBox(); 224 | return newBox; 225 | } 226 | ///The dimension which this box is largest in 227 | int GetLongestColorDimension() 228 | { 229 | int redLength = maxRed - minRed; 230 | int greenLength = maxGreen - minGreen; 231 | int blueLength = maxBlue - minBlue; 232 | if (redLength >= greenLength && redLength >= blueLength) 233 | { 234 | return COMPONENT_RED; 235 | } 236 | else if (greenLength >= redLength && greenLength >= blueLength) 237 | { 238 | return COMPONENT_GREEN; 239 | } 240 | else 241 | { 242 | return COMPONENT_BLUE; 243 | } 244 | } 245 | 246 | /// 247 | ///Finds the point within this box's lowerIndex and upperIndex index of where to split. 248 | ///This is calculated by finding the longest color dimension, and then sorting the 249 | ///sub-array based on that dimension value in each color. The colors are then iterated over 250 | ///until a color is found with at least the midpoint of the whole box's dimension midpoint. 251 | /// 252 | ///The index of the colors array to split from 253 | int FindSplitPoint() 254 | { 255 | int longestDimension = GetLongestColorDimension(); 256 | // We need to sort the colors in this box based on the longest color dimension. 257 | // As we can't use a Comparator to define the sort logic, we modify each color so that 258 | // it's most significant is the desired dimension 259 | ModifySignificantOctet(longestDimension, lowerIndex, upperIndex); 260 | // Now sort... 261 | Array.Sort(colors, lowerIndex, upperIndex + 1 - lowerIndex); 262 | // Now revert all of the colors so that they are packed as RGB again 263 | ModifySignificantOctet(longestDimension, lowerIndex, upperIndex); 264 | int dimensionMidPoint = MidPoint(longestDimension); 265 | for (int i = lowerIndex; i < upperIndex; i++) 266 | { 267 | int color = colors[i]; 268 | switch (longestDimension) 269 | { 270 | case COMPONENT_RED: 271 | if (color.Red() >= dimensionMidPoint) 272 | { 273 | return i; 274 | } 275 | break; 276 | case COMPONENT_GREEN: 277 | if (color.Green() >= dimensionMidPoint) 278 | { 279 | return i; 280 | } 281 | break; 282 | case COMPONENT_BLUE: 283 | if (color.Blue() > dimensionMidPoint) 284 | { 285 | return i; 286 | } 287 | break; 288 | } 289 | } 290 | return lowerIndex; 291 | } 292 | 293 | ///The average color of this box. 294 | public Swatch GetAverageColor() 295 | { 296 | int redSum = 0; 297 | int greenSum = 0; 298 | int blueSum = 0; 299 | int totalPopulation = 0; 300 | for (int i = lowerIndex; i <= upperIndex; i++) 301 | { 302 | int color = colors[i]; 303 | int colorPopulation = mColorPopulations[color]; 304 | totalPopulation += colorPopulation; 305 | redSum += colorPopulation * color.Red(); 306 | greenSum += colorPopulation * color.Green(); 307 | blueSum += colorPopulation * color.Blue(); 308 | } 309 | int redAverage = (int)Mathf.Round(redSum / (float)totalPopulation); 310 | int greenAverage = (int)Mathf.Round(greenSum / (float)totalPopulation); 311 | int blueAverage = (int)Mathf.Round(blueSum / (float)totalPopulation); 312 | return new Swatch(redAverage, greenAverage, blueAverage, totalPopulation); 313 | } 314 | 315 | ///the midpoint of this box in the given dimension 316 | int MidPoint(int dimension) 317 | { 318 | switch (dimension) 319 | { 320 | case COMPONENT_RED: 321 | default: 322 | return (minRed + maxRed) / 2; 323 | case COMPONENT_GREEN: 324 | return (minGreen + maxGreen) / 2; 325 | case COMPONENT_BLUE: 326 | return (minBlue + maxBlue) / 2; 327 | } 328 | } 329 | } 330 | 331 | /// 332 | ///Modify the significant octet in a packed color int. Allows sorting based on the value of a 333 | ///single color component. 334 | ///See 335 | /// 336 | private static void ModifySignificantOctet(int dimension, int lowIndex, int highIndex) 337 | { 338 | switch (dimension) 339 | { 340 | case COMPONENT_RED: 341 | // Already in RGB, no need to do anything 342 | break; 343 | case COMPONENT_GREEN: 344 | // We need to do a RGB to GRB swap, or vice-versa 345 | for (int i = lowIndex; i <= highIndex; i++) 346 | { 347 | int color = colors[i]; 348 | colors[i] = new Color32((byte)color.Green(), (byte)color.Red(), (byte)color.Blue(), 255).ToInt(); 349 | } 350 | break; 351 | case COMPONENT_BLUE: 352 | // We need to do a RGB to BGR swap, or vice-versa 353 | for (int i = lowIndex; i <= highIndex; i++) 354 | { 355 | int color = colors[i]; 356 | colors[i] = new Color32((byte)color.Blue(), (byte)color.Green(), (byte)color.Red(), 255).ToInt(); 357 | } 358 | break; 359 | } 360 | } 361 | private static bool ShouldIgnoreColor(int color) 362 | { 363 | mTempHsl = ColorUtils.RGBtoHSL(color.Red(), color.Green(), color.Blue()); 364 | return ShouldIgnoreColor(mTempHsl); 365 | } 366 | private static bool ShouldIgnoreColor(Swatch color) 367 | { 368 | return ShouldIgnoreColor(color.Hsl); 369 | } 370 | private static bool ShouldIgnoreColor(float[] hslColor) 371 | { 372 | return IsWhite(hslColor) || IsBlack(hslColor) || IsNearRedILine(hslColor); 373 | } 374 | 375 | ///True if the color represents a color which is close to black. 376 | private static bool IsBlack(float[] hslColor) 377 | { 378 | return hslColor[2] <= BLACK_MAX_LIGHTNESS; 379 | } 380 | 381 | ///True if the color represents a color which is close to white. 382 | private static bool IsWhite(float[] hslColor) 383 | { 384 | return hslColor[2] >= WHITE_MIN_LIGHTNESS; 385 | } 386 | 387 | ///True if the color lies close to the red side of the I line. 388 | private static bool IsNearRedILine(float[] hslColor) 389 | { 390 | return hslColor[0] >= 10f && hslColor[0] <= 37f && hslColor[1] <= 0.82f; 391 | } 392 | } 393 | } -------------------------------------------------------------------------------- /Assets/Palette/ColorCutQuantizer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2e3b6e4689534e41821c5923db5860c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Palette/ColorHistogram.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace OokiiTsuki.Palette 4 | { 5 | public class ColorHistogram 6 | { 7 | public int[] Colors { get; private set; } 8 | public int[] ColorCounts { get; private set; } 9 | public int NumberOfColors { get; private set; } 10 | public ColorHistogram(int[] pixels) 11 | { 12 | // Sort the pixels to enable counting below 13 | Array.Sort(pixels); 14 | // Count number of distinct colors 15 | NumberOfColors = CountDistinctColors(pixels); 16 | // Create arrays 17 | Colors = new int[NumberOfColors]; 18 | ColorCounts = new int[NumberOfColors]; 19 | // Finally count the frequency of each color 20 | CountFrequencies(pixels); 21 | } 22 | private static int CountDistinctColors(int[] pixels) 23 | { 24 | if (pixels.Length < 2) 25 | { 26 | // If we have less than 2 pixels we can stop here 27 | return pixels.Length; 28 | } 29 | // If we have at least 2 pixels, we have a minimum of 1 color... 30 | int colorCount = 1; 31 | int currentColor = pixels[0]; 32 | // Now iterate from the second pixel to the end, counting distinct colors 33 | for (int i = 1; i < pixels.Length; i++) 34 | { 35 | // If we encounter a new color, increase the population 36 | if (pixels[i] != currentColor) 37 | { 38 | currentColor = pixels[i]; 39 | colorCount++; 40 | } 41 | } 42 | return colorCount; 43 | } 44 | private void CountFrequencies(int[] pixels) 45 | { 46 | if (pixels.Length == 0) 47 | return; 48 | 49 | int currentColorIndex = 0; 50 | int currentColor = pixels[0]; 51 | Colors[currentColorIndex] = currentColor; 52 | ColorCounts[currentColorIndex] = 1; 53 | if (pixels.Length == 1) 54 | // If we only have one pixel, we can stop here 55 | return; 56 | 57 | // Now iterate from the second pixel to the end, population distinct colors 58 | for (int i = 1; i < pixels.Length; i++) 59 | { 60 | if (pixels[i] == currentColor) 61 | { 62 | // We've hit the same color as before, increase population 63 | ColorCounts[currentColorIndex]++; 64 | } 65 | else 66 | { 67 | // We've hit a new color, increase index 68 | currentColor = pixels[i]; 69 | currentColorIndex++; 70 | Colors[currentColorIndex] = currentColor; 71 | ColorCounts[currentColorIndex] = 1; 72 | } 73 | } 74 | } 75 | } 76 | } -------------------------------------------------------------------------------- /Assets/Palette/ColorHistogram.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a916780e1921ec343bed2d5c146d71d6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Palette/ColorUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace OokiiTsuki.Palette 5 | { 6 | public static class ColorUtils 7 | { 8 | private const int MIN_ALPHA_SEARCH_MAX_ITERATIONS = 10; 9 | private const int MIN_ALPHA_SEARCH_PRECISION = 1; 10 | private const float MIN_CONTRAST_TITLE_TEXT = 3.0f; 11 | private const float MIN_CONTRAST_BODY_TEXT = 4.5f; 12 | public static float CalculateXyzLuma(this int color) 13 | { 14 | Color32 c = color.ToColor(); 15 | return (0.2126f * c.r + 16 | 0.7152f * c.g + 17 | 0.0722f * c.b / 255f); 18 | } 19 | public static float CalculateContrast(this int color1, int color2) 20 | { 21 | return Mathf.Abs(color1.CalculateXyzLuma() - color2.CalculateXyzLuma()); 22 | } 23 | public static float[] RGBtoHSL(int r, int g, int b) 24 | { 25 | float rf = r / 255f; 26 | float gf = g / 255f; 27 | float bf = b / 255f; 28 | float max = Mathf.Max(rf, Mathf.Max(gf, bf)); 29 | float min = Mathf.Min(rf, Mathf.Min(gf, bf)); 30 | float deltaMaxMin = max - min; 31 | float h, s; 32 | float l = (max + min) / 2f; 33 | float[] hsl = new float[3]; 34 | if (max == min) 35 | { 36 | // Monochromatic 37 | h = s = 0f; 38 | } 39 | else 40 | { 41 | if (max == rf) 42 | { 43 | h = ((gf - bf) / deltaMaxMin) % 6f; 44 | } 45 | else if (max == gf) 46 | { 47 | h = ((bf - rf) / deltaMaxMin) + 2f; 48 | } 49 | else 50 | { 51 | h = ((rf - gf) / deltaMaxMin) + 4f; 52 | } 53 | s = deltaMaxMin / (1f - Mathf.Abs(2f * l - 1f)); 54 | } 55 | hsl[0] = (h * 60f) % 360f; 56 | hsl[1] = s; 57 | hsl[2] = l; 58 | return hsl; 59 | } 60 | public static int HSLtoRGB(float[] hsl) 61 | { 62 | float h = hsl[0]; 63 | float s = hsl[1]; 64 | float l = hsl[2]; 65 | float c = (1f - Mathf.Abs(2 * l - 1f)) * s; 66 | float m = l - 0.5f * c; 67 | float x = c * (1f - Mathf.Abs((h / 60f % 2f) - 1f)); 68 | int hueSegment = (int)h / 60; 69 | int r = 0, g = 0, b = 0; 70 | switch (hueSegment) 71 | { 72 | case 0: 73 | r = (int)Mathf.Round(255 * (c + m)); 74 | g = (int)Mathf.Round(255 * (x + m)); 75 | b = (int)Mathf.Round(255 * m); 76 | break; 77 | case 1: 78 | r = (int)Mathf.Round(255 * (x + m)); 79 | g = (int)Mathf.Round(255 * (c + m)); 80 | b = (int)Mathf.Round(255 * m); 81 | break; 82 | case 2: 83 | r = (int)Mathf.Round(255 * m); 84 | g = (int)Mathf.Round(255 * (c + m)); 85 | b = (int)Mathf.Round(255 * (x + m)); 86 | break; 87 | case 3: 88 | r = (int)Mathf.Round(255 * m); 89 | g = (int)Mathf.Round(255 * (x + m)); 90 | b = (int)Mathf.Round(255 * (c + m)); 91 | break; 92 | case 4: 93 | r = (int)Mathf.Round(255 * (x + m)); 94 | g = (int)Mathf.Round(255 * m); 95 | b = (int)Mathf.Round(255 * (c + m)); 96 | break; 97 | case 5: 98 | case 6: 99 | r = (int)Mathf.Round(255 * (c + m)); 100 | g = (int)Mathf.Round(255 * m); 101 | b = (int)Mathf.Round(255 * (x + m)); 102 | break; 103 | } 104 | r = Mathf.Max(0, Mathf.Min(255, r)); 105 | g = Mathf.Max(0, Mathf.Min(255, g)); 106 | b = Mathf.Max(0, Mathf.Min(255, b)); 107 | return new Color32((byte)r, (byte)g, (byte)b, 255).ToInt(); 108 | } 109 | public static float[] RGBToXYZ(byte r, byte g, byte b) 110 | { 111 | float[] outXyz = new float[3]; 112 | float sr = r / 255.0f; 113 | sr = sr < 0.04045f ? sr / 12.92f : Mathf.Pow((sr + 0.055f) / 1.055f, 2.4f); 114 | float sg = g / 255.0f; 115 | sg = sg < 0.04045f ? sg / 12.92f : Mathf.Pow((sg + 0.055f) / 1.055f, 2.4f); 116 | float sb = b / 255.0f; 117 | sb = sb < 0.04045f ? sb / 12.92f : Mathf.Pow((sb + 0.055f) / 1.055f, 2.4f); 118 | 119 | outXyz[0] = 100 * (sr * 0.4124f + sg * 0.3576f + sb * 0.1805f); 120 | outXyz[1] = 100 * (sr * 0.2126f + sg * 0.7152f + sb * 0.0722f); 121 | outXyz[2] = 100 * (sr * 0.0193f + sg * 0.1192f + sb * 0.9505f); 122 | return outXyz; 123 | } 124 | public static Color32 ToColor(this int color) 125 | { 126 | Color32 c = new Color32(); 127 | c.b = (byte)(color & 0xFF); 128 | c.g = (byte)((color >> 8) & 0xFF); 129 | c.r = (byte)((color >> 16) & 0xFF); 130 | c.a = (byte)((color >> 24) & 0xFF); 131 | return c; 132 | } 133 | public static int ToInt(this Color32 color) 134 | { 135 | return (color.a & 0xFF) << 24 | (color.r & 0xFF) << 16 | (color.g & 0xFF) << 8 | (color.b & 0xFF); 136 | } 137 | public static int Red(this int color) => (color >> 16) & 0xFF; 138 | public static int Green(this int color) => (color >> 8) & 0xFF; 139 | public static int Blue(this int color) => color & 0xFF; 140 | 141 | ///Returns an appropriate color to use for any 'title' text which is displayed over this color. 142 | ///This color is guaranteed to have sufficient contrast. 143 | ///An appropriate color 144 | public static Color GetTitleTextColor(this Color color) => GetTitleTextColor((Color32)color); 145 | 146 | ///Returns an appropriate color to use for any 'body' text which is displayed over this color. 147 | ///This color is guaranteed to have sufficient contrast. 148 | ///An appropriate color 149 | public static Color GetBodyTextColor(this Color color) => GetBodyTextColor((Color32)color); 150 | 151 | ///Returns an appropriate color to use for any 'title' text which is displayed over this color. 152 | ///This color is guaranteed to have sufficient contrast. 153 | ///An appropriate color 154 | public static Color32 GetTitleTextColor(this Color32 color) 155 | { 156 | int lightTitleAlpha = CalculateMinimumAlpha(Color.white, color, MIN_CONTRAST_TITLE_TEXT); 157 | if (lightTitleAlpha != -1) 158 | { 159 | // If we found valid light values, use them and return 160 | return new Color32(255, 255, 255, (byte)lightTitleAlpha).OverlayColors(color); 161 | } 162 | int darkTitleAlpha = CalculateMinimumAlpha(Color.black, color, MIN_CONTRAST_TITLE_TEXT); 163 | if (darkTitleAlpha != -1) 164 | { 165 | // If we found valid dark values, use them and return 166 | return new Color32(0, 0, 0, (byte)darkTitleAlpha).OverlayColors(color); 167 | } 168 | 169 | 170 | return lightTitleAlpha != -1 171 | ? new Color32(255, 255, 255, (byte)lightTitleAlpha).OverlayColors(color) 172 | : new Color32(0, 0, 0, (byte)darkTitleAlpha).OverlayColors(color); 173 | } 174 | 175 | ///Returns an appropriate color to use for any 'body' text which is displayed over this color. 176 | ///This color is guaranteed to have sufficient contrast. 177 | ///An appropriate color 178 | public static Color32 GetBodyTextColor(this Color32 color) 179 | { 180 | int lightBodyAlpha = CalculateMinimumAlpha(Color.white, color, MIN_CONTRAST_BODY_TEXT); 181 | if (lightBodyAlpha != -1) 182 | { 183 | // If we found valid light values, use them and return 184 | return new Color32(255, 255, 255, (byte)lightBodyAlpha).OverlayColors(color); 185 | } 186 | int darkBodyAlpha = CalculateMinimumAlpha(Color.black, color, MIN_CONTRAST_BODY_TEXT); 187 | if (darkBodyAlpha != -1) 188 | { 189 | // If we found valid dark values, use them and return 190 | return new Color32(0, 0, 0, (byte)darkBodyAlpha).OverlayColors(color); 191 | } 192 | return lightBodyAlpha != -1 193 | ? new Color32(255, 255, 255, (byte)lightBodyAlpha).OverlayColors(color) 194 | : new Color32(0, 0, 0, (byte)darkBodyAlpha).OverlayColors(color); 195 | } 196 | public static int CalculateMinimumAlpha(this Color32 foreground, Color32 background, float minContrastRatio) 197 | { 198 | if (background.a != 255) 199 | throw new ArgumentException("background can not be translucent: #" + background.ToInt().ToString("X")); 200 | 201 | // First lets check that a fully opaque foreground has sufficient contrast 202 | Color32 testForeground = new Color32(foreground.r, foreground.g, foreground.b, 255); 203 | float testRatio = CalculateContrast(testForeground, background); 204 | if (testRatio < minContrastRatio) 205 | { 206 | // Fully opaque foreground does not have sufficient contrast, return error 207 | return -1; 208 | } 209 | // Binary search to find a value with the minimum value which provides sufficient contrast 210 | int numIterations = 0; 211 | int minAlpha = 0; 212 | int maxAlpha = 255; 213 | 214 | while (numIterations <= MIN_ALPHA_SEARCH_MAX_ITERATIONS 215 | && (maxAlpha - minAlpha) > MIN_ALPHA_SEARCH_PRECISION) 216 | { 217 | int testAlpha = (minAlpha + maxAlpha) / 2; 218 | 219 | testForeground = new Color32(foreground.r, foreground.g, foreground.b, (byte)testAlpha); 220 | testRatio = CalculateContrast(testForeground, background); 221 | 222 | if (testRatio < minContrastRatio) 223 | { 224 | minAlpha = testAlpha; 225 | } 226 | else 227 | { 228 | maxAlpha = testAlpha; 229 | } 230 | 231 | numIterations++; 232 | } 233 | 234 | // Conservatively return the max of the range of possible alphas, which is known to pass. 235 | return maxAlpha; 236 | } 237 | public static float CalculateContrast(this Color32 foreground, Color32 background) 238 | { 239 | if (background.a != 255) 240 | throw new ArgumentException("background can not be translucent: #" + background.ToInt().ToString("X")); 241 | if (foreground.a != 255) 242 | { 243 | // If the foreground is translucent, composite the foreground over the background 244 | foreground = CompositeColors(foreground, background); 245 | } 246 | 247 | float luminance1 = CalculateLuminance(foreground) + 0.05f; 248 | float luminance2 = CalculateLuminance(background) + 0.05f; 249 | 250 | // Now return the lighter luminance divided by the darker luminance 251 | return Mathf.Max((float)luminance1, (float)luminance2) / Mathf.Min((float)luminance1, (float)luminance2); 252 | } 253 | public static Color32 CompositeColors(this Color32 foreground, Color32 background) 254 | { 255 | byte bgAlpha = background.a; 256 | byte fgAlpha = foreground.a; 257 | byte a = CompositeAlpha(fgAlpha, bgAlpha); 258 | 259 | byte r = CompositeComponent(foreground.r, fgAlpha, background.r, bgAlpha, a); 260 | byte g = CompositeComponent(foreground.g, fgAlpha, background.g, bgAlpha, a); 261 | byte b = CompositeComponent(foreground.b, fgAlpha, background.b, bgAlpha, a); 262 | 263 | return new Color32(r, g, b, a); 264 | } 265 | private static byte CompositeAlpha(this byte foregroundAlpha, byte backgroundAlpha) 266 | { 267 | return (byte)(0xFF - (((0xFF - backgroundAlpha) * (0xFF - foregroundAlpha)) / 0xFF)); 268 | } 269 | private static byte CompositeComponent(int fgC, int fgA, int bgC, int bgA, int a) 270 | { 271 | if (a == 0) 272 | return 0; 273 | return (byte)(((0xFF * fgC * fgA) + (bgC * bgA * (0xFF - fgA))) / (a * 0xFF)); 274 | } 275 | public static float CalculateLuminance(Color32 color) 276 | { 277 | // Luminance is the Y component 278 | return RGBToXYZ(color.r, color.g, color.b)[1] / 100; 279 | } 280 | public static Color32 OverlayColors(this Color32 c0, Color32 c1) => OverlayColors((Color)c0, (Color)c1); 281 | public static Color OverlayColors(this Color c0, Color c1) 282 | { 283 | float a01 = (1 - c0.a) * c1.a + c0.a; 284 | float r01 = ((1 - c0.a) * c1.a * c1.r + c0.a * c0.r) / a01; 285 | float g01 = ((1 - c0.a) * c1.a * c1.g + c0.a * c0.g) / a01; 286 | float b01 = ((1 - c0.a) * c1.a * c1.b + c0.a * c0.b) / a01; 287 | return new Color(r01, g01, b01, a01); 288 | } 289 | } 290 | } -------------------------------------------------------------------------------- /Assets/Palette/ColorUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49b756a8bfc458242b7d49565a12033c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Palette/Palette.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using UnityEngine; 5 | 6 | namespace OokiiTsuki.Palette 7 | { 8 | public class Palette 9 | { 10 | private const int CALCULATE_TEXTURE_MIN_DIMENSION = 100; 11 | private const int DEFAULT_CALCULATE_NUMBER_COLORS = 16; 12 | private const float TARGET_DARK_LUMA = 0.26f; 13 | private const float MAX_DARK_LUMA = 0.45f; 14 | private const float MIN_LIGHT_LUMA = 0.55f; 15 | private const float TARGET_LIGHT_LUMA = 0.74f; 16 | private const float MIN_NORMAL_LUMA = 0.3f; 17 | private const float TARGET_NORMAL_LUMA = 0.5f; 18 | private const float MAX_NORMAL_LUMA = 0.7f; 19 | private const float TARGET_MUTED_SATURATION = 0.3f; 20 | private const float MAX_MUTED_SATURATION = 0.4f; 21 | private const float TARGET_VIBRANT_SATURATION = 1f; 22 | private const float MIN_VIBRANT_SATURATION = 0.35f; 23 | 24 | private List mSwatches; 25 | private int mHighestPopulation; 26 | 27 | public Swatch VibrantSwatch { get; private set; } 28 | public Swatch MutedSwatch { get; private set; } 29 | public Swatch DarkVibrantSwatch { get; private set; } 30 | public Swatch DarkMutedSwatch { get; private set; } 31 | public Swatch LightVibrantSwatch { get; private set; } 32 | public Swatch LightMutedSwatch { get; private set; } 33 | 34 | public static Palette Generate(Texture2D texture, int numColors = DEFAULT_CALCULATE_NUMBER_COLORS) 35 | { 36 | if (numColors < 1) 37 | throw new ArgumentException("numColors must be 1 or greater"); 38 | // First we'll scale down the bitmap so it's shortest dimension is 100px 39 | Texture2D scaledTexture = ScaleTextureDown(texture); 40 | // Now generate a quantizer from the Bitmap 41 | ColorCutQuantizer quantizer = ColorCutQuantizer.FromTexture2D(scaledTexture, numColors); 42 | 43 | // Now return a ColorExtractor instance 44 | return new Palette(quantizer.QuantizedColors); 45 | } 46 | private Palette(List swatches) 47 | { 48 | mSwatches = swatches; 49 | mHighestPopulation = FindMaxPopulation(); 50 | VibrantSwatch = FindColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA, 51 | TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f); 52 | LightVibrantSwatch = FindColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f, 53 | TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f); 54 | DarkVibrantSwatch = FindColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA, 55 | TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f); 56 | MutedSwatch = FindColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA, 57 | TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION); 58 | LightMutedSwatch = FindColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f, 59 | TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION); 60 | DarkMutedSwatch = FindColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA, 61 | TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION); 62 | // Now try and generate any missing colors 63 | GenerateEmptySwatches(); 64 | } 65 | 66 | ///True if we have already selected swatch 67 | private bool IsAlreadySelected(Swatch swatch) 68 | { 69 | return VibrantSwatch == swatch || DarkVibrantSwatch == swatch || 70 | LightVibrantSwatch == swatch || MutedSwatch == swatch || 71 | DarkMutedSwatch == swatch || LightMutedSwatch == swatch; 72 | } 73 | private Swatch FindColor(float targetLuma, float minLuma, float maxLuma, 74 | float targetSaturation, float minSaturation, float maxSaturation) 75 | { 76 | Swatch max = null; 77 | float maxValue = 0f; 78 | foreach (Swatch swatch in mSwatches) 79 | { 80 | float sat = swatch.Hsl[1]; 81 | float luma = swatch.Hsl[2]; 82 | if (sat >= minSaturation && sat <= maxSaturation && 83 | luma >= minLuma && luma <= maxLuma && 84 | !IsAlreadySelected(swatch)) 85 | { 86 | float thisValue = CreateComparisonValue(sat, targetSaturation, luma, targetLuma, 87 | swatch.Population, mHighestPopulation); 88 | if (max == null || thisValue > maxValue) 89 | { 90 | max = swatch; 91 | maxValue = thisValue; 92 | } 93 | } 94 | } 95 | return max; 96 | } 97 | 98 | ///Try and generate any missing swatches from the swatches we did find. 99 | private void GenerateEmptySwatches() 100 | { 101 | if (VibrantSwatch == null) 102 | { 103 | // If we do not have a vibrant color... 104 | if (DarkVibrantSwatch != null) 105 | { 106 | // ...but we do have a dark vibrant, generate the value by modifying the luma 107 | float[] newHsl = CopyHslValues(DarkVibrantSwatch); 108 | newHsl[2] = TARGET_NORMAL_LUMA; 109 | VibrantSwatch = new Swatch(ColorUtils.HSLtoRGB(newHsl), 0); 110 | } 111 | } 112 | if (DarkVibrantSwatch == null) 113 | { 114 | // If we do not have a dark vibrant color... 115 | if (VibrantSwatch != null) 116 | { 117 | // ...but we do have a vibrant, generate the value by modifying the luma 118 | float[] newHsl = CopyHslValues(VibrantSwatch); 119 | newHsl[2] = TARGET_DARK_LUMA; 120 | DarkVibrantSwatch = new Swatch(ColorUtils.HSLtoRGB(newHsl), 0); 121 | } 122 | } 123 | } 124 | 125 | ///Find the with the highest population value and return the population. 126 | private int FindMaxPopulation() 127 | { 128 | int population = 0; 129 | foreach (Swatch swatch in mSwatches) 130 | { 131 | population = Mathf.Max(population, swatch.Population); 132 | } 133 | return population; 134 | } 135 | 136 | private static Texture2D ScaleTextureDown(Texture2D texture) 137 | { 138 | // Scale texture to fit max size preserving aspect ratio 139 | 140 | var maxResizeFactor = Mathf.Min(CALCULATE_TEXTURE_MIN_DIMENSION / (float)texture.width, CALCULATE_TEXTURE_MIN_DIMENSION / (float)texture.height); 141 | 142 | if (maxResizeFactor > 1) 143 | return texture; 144 | 145 | var width = (int)(maxResizeFactor * texture.width); 146 | var height = (int)(maxResizeFactor * texture.height); 147 | 148 | RenderTexture rt = new RenderTexture(width, height, 24); 149 | RenderTexture.active = rt; 150 | Graphics.Blit(texture, rt); 151 | Texture2D result = new Texture2D(width, height); 152 | result.ReadPixels(new Rect(0, 0, width, height), 0, 0); 153 | result.Apply(); 154 | 155 | return result; 156 | } 157 | private static float CreateComparisonValue(float saturation, float targetSaturation, 158 | float luma, float targetLuma, 159 | int population, int highestPopulation) 160 | { 161 | return WeightedMean( 162 | InvertDiff(saturation, targetSaturation), 3f, 163 | InvertDiff(luma, targetLuma), 6.5f, 164 | population / (float)highestPopulation, 0.5f 165 | ); 166 | } 167 | /** 168 | * Copy a {@link Swatch}'s HSL values into a new float[]. 169 | */ 170 | ///Copy a 's HSL values into a new float[]. 171 | private static float[] CopyHslValues(Swatch color) 172 | { 173 | float[] newHsl = new float[3]; 174 | Array.Copy(color.Hsl, 0, newHsl, 0, 3); 175 | return newHsl; 176 | } 177 | 178 | /// 179 | ///Returns a value in the range 0-1. 1 is returned when value equals the 180 | ///targetValue and then decreases as the absolute difference between value and 181 | ///targetValue increases. 182 | /// 183 | ///the item's value 184 | ///targetValue the value which we desire 185 | private static float InvertDiff(float value, float targetValue) 186 | { 187 | return 1f - Mathf.Abs(value - targetValue); 188 | } 189 | private static float WeightedMean(params float[] values) 190 | { 191 | float sum = 0f; 192 | float sumWeight = 0f; 193 | for (int i = 0; i < values.Length; i += 2) 194 | { 195 | float value = values[i]; 196 | float weight = values[i + 1]; 197 | sum += (value * weight); 198 | sumWeight += weight; 199 | } 200 | return sum / sumWeight; 201 | } 202 | public Color GetVibrantColor(Color defaultColor = default) 203 | => VibrantSwatch != null ? VibrantSwatch.ToColor() : defaultColor; 204 | public Color GetMutedColor(Color defaultColor = default) 205 | => MutedSwatch != null ? MutedSwatch.ToColor() : defaultColor; 206 | public Color GetDarkVibrantColor(Color defaultColor = default) 207 | => DarkVibrantSwatch != null ? DarkVibrantSwatch.ToColor() : defaultColor; 208 | public Color GetDarkMutedColor(Color defaultColor = default) 209 | => DarkMutedSwatch != null ? DarkMutedSwatch.ToColor() : defaultColor; 210 | public Color GetLightVibrantColor(Color defaultColor = default) 211 | => LightVibrantSwatch != null ? LightVibrantSwatch.ToColor() : defaultColor; 212 | public Color GetLightMutedColor(Color defaultColor = default) 213 | => LightMutedSwatch != null ? LightMutedSwatch.ToColor() : defaultColor; 214 | public class Swatch 215 | { 216 | public int Red { get; private set; } 217 | public int Green { get; private set; } 218 | public int Blue { get; private set; } 219 | public int Rgb { get; private set; } 220 | public int Population { get; private set; } 221 | private float[] mHsl; 222 | public Swatch(int rgbColor, int population) 223 | { 224 | Red = rgbColor.Red(); 225 | Green = rgbColor.Green(); 226 | Blue = rgbColor.Blue(); 227 | Rgb = rgbColor; 228 | Population = population; 229 | } 230 | public Swatch(int red, int green, int blue, int population) 231 | { 232 | Red = red; 233 | Green = green; 234 | Blue = blue; 235 | Rgb = new Color32((byte)red, (byte)green, (byte)blue, 255).ToInt(); 236 | Population = population; 237 | } 238 | public Color ToColor() 239 | { 240 | return Rgb.ToColor(); 241 | } 242 | 243 | /// 244 | ///This swatch's HSL values. 245 | ///hsv[0] is Hue [0 .. 360) 246 | ///hsv[1] is Saturation [0...1] 247 | ///hsv[2] is Lightness [0...1] 248 | /// 249 | public float[] Hsl 250 | { 251 | get 252 | { 253 | if (mHsl == null) 254 | // Lazily generate HSL values from RGB 255 | mHsl = ColorUtils.RGBtoHSL(Red, Green, Blue); 256 | return mHsl; 257 | } 258 | } 259 | public override string ToString() 260 | { 261 | return new StringBuilder(typeof(Swatch).Name).Append(" ") 262 | .Append("[").Append(Rgb.ToString("X")).Append(']') 263 | .Append("[HSL: ").Append(string.Join(", ", Hsl)).Append(']') 264 | .Append("[Population: ").Append(Population).Append(']').ToString(); 265 | } 266 | } 267 | } 268 | } -------------------------------------------------------------------------------- /Assets/Palette/Palette.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5961843e22cefe5468f313bbb5321117 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28169665bc9461a4eb4977b2a030cb0c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cda990e2423bbf4892e6590ba056729 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/TestImages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0aa70f816e3aba4181d95ec16feba1e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TestImages/Screenshot 2021-12-11 215359.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ookii-tsuki/unity-color-palette/b5dcfe53d4b681f216ff79e7400465459f530a1e/Assets/TestImages/Screenshot 2021-12-11 215359.png -------------------------------------------------------------------------------- /Assets/TestImages/Screenshot 2021-12-11 215359.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8389134916e16f54d880b9a4fe994871 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 1 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 1 36 | aniso: 1 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 1 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 8 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: WebGL 92 | maxTextureSize: 2048 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 0 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | - serializedVersion: 3 103 | buildTarget: Android 104 | maxTextureSize: 2048 105 | resizeAlgorithm: 0 106 | textureFormat: -1 107 | textureCompression: 1 108 | compressionQuality: 50 109 | crunchedCompression: 0 110 | allowsAlphaSplitting: 0 111 | overridden: 0 112 | androidETC2FallbackOverride: 0 113 | forceMaximumCompressionQuality_BC6H_BC7: 0 114 | spriteSheet: 115 | serializedVersion: 2 116 | sprites: [] 117 | outline: [] 118 | physicsShape: [] 119 | bones: [] 120 | spriteID: 5e97eb03825dee720800000000000000 121 | internalID: 0 122 | vertices: [] 123 | indices: 124 | edges: [] 125 | weights: [] 126 | secondaryTextures: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Assets/TestImages/Screenshot 2021-12-17 185911.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ookii-tsuki/unity-color-palette/b5dcfe53d4b681f216ff79e7400465459f530a1e/Assets/TestImages/Screenshot 2021-12-17 185911.png -------------------------------------------------------------------------------- /Assets/TestImages/Screenshot 2021-12-17 185911.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf1b0ad0dc34d2d45916b497f6d53532 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 1 36 | aniso: 1 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 1 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 8 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | spriteSheet: 79 | serializedVersion: 2 80 | sprites: [] 81 | outline: [] 82 | physicsShape: [] 83 | bones: [] 84 | spriteID: 5e97eb03825dee720800000000000000 85 | internalID: 0 86 | vertices: [] 87 | indices: 88 | edges: [] 89 | weights: [] 90 | secondaryTextures: [] 91 | spritePackingTag: 92 | pSDRemoveMatte: 0 93 | pSDShowRemoveMatteOption: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /Assets/TestScript.cs: -------------------------------------------------------------------------------- 1 | using OokiiTsuki.Palette; 2 | using System.Diagnostics; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | public class TestScript : MonoBehaviour 7 | { 8 | public Image Main; 9 | 10 | public Image MutedColor; 11 | public Image VibrantColor; 12 | public Image LightMutedColor; 13 | public Image LightVibrantColor; 14 | public Image DarkMutedColor; 15 | public Image DarkVibrantColor; 16 | // Start is called before the first frame update 17 | void Start() 18 | { 19 | Stopwatch sw = new Stopwatch(); 20 | sw.Start(); 21 | Palette palette = Palette.Generate(Main.sprite.texture); 22 | sw.Stop(); 23 | print(sw.ElapsedMilliseconds); 24 | MutedColor.color = palette.GetMutedColor(); 25 | VibrantColor.color = palette.GetVibrantColor(); 26 | LightMutedColor.color = palette.GetLightMutedColor(); 27 | LightVibrantColor.color = palette.GetLightVibrantColor(); 28 | DarkMutedColor.color = palette.GetDarkMutedColor(); 29 | DarkVibrantColor.color = palette.GetDarkVibrantColor(); 30 | 31 | MutedColor.transform.GetChild(0).GetComponent().color = MutedColor.color.GetTitleTextColor(); 32 | VibrantColor.transform.GetChild(0).GetComponent().color = VibrantColor.color.GetTitleTextColor(); 33 | LightMutedColor.transform.GetChild(0).GetComponent().color = LightMutedColor.color.GetTitleTextColor(); 34 | LightVibrantColor.transform.GetChild(0).GetComponent().color = VibrantColor.color.GetTitleTextColor(); 35 | DarkMutedColor.transform.GetChild(0).GetComponent().color = VibrantColor.color.GetTitleTextColor(); 36 | DarkVibrantColor.transform.GetChild(0).GetComponent().color = VibrantColor.color.GetTitleTextColor(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /Assets/TestScript.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b006dd2eae90f4548b86a4f09d766fb6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Med 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Logs/ApiUpdaterCheck.txt: -------------------------------------------------------------------------------- 1 | [api-updater (non-obsolete-error-filter)] 12/11/2021 8:59:57 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 2 | [api-updater (non-obsolete-error-filter)] 3 | ---------------------------------- 4 | jit/startup time : 847.7576ms 5 | moved types parse time: 64ms 6 | candidates parse time : 1ms 7 | C# parse time : 866ms 8 | candidates check time : 43ms 9 | console write time : 0ms 10 | 11 | [api-updater (non-obsolete-error-filter)] 12/11/2021 9:00:00 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 12 | [api-updater (non-obsolete-error-filter)] 13 | ---------------------------------- 14 | jit/startup time : 91.997ms 15 | moved types parse time: 65ms 16 | candidates parse time : 2ms 17 | C# parse time : 243ms 18 | candidates check time : 44ms 19 | console write time : 0ms 20 | 21 | [api-updater (non-obsolete-error-filter)] 12/11/2021 9:00:06 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 22 | [api-updater (non-obsolete-error-filter)] 23 | ---------------------------------- 24 | jit/startup time : 96.6034ms 25 | moved types parse time: 63ms 26 | candidates parse time : 1ms 27 | C# parse time : 259ms 28 | candidates check time : 40ms 29 | console write time : 0ms 30 | 31 | [api-updater (non-obsolete-error-filter)] 12/11/2021 10:01:14 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 32 | [api-updater (non-obsolete-error-filter)] 33 | ---------------------------------- 34 | jit/startup time : 109.0017ms 35 | moved types parse time: 69ms 36 | candidates parse time : 1ms 37 | C# parse time : 302ms 38 | candidates check time : 44ms 39 | console write time : 0ms 40 | 41 | [api-updater (non-obsolete-error-filter)] 12/11/2021 10:14:46 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 42 | [api-updater (non-obsolete-error-filter)] 43 | ---------------------------------- 44 | jit/startup time : 101.984ms 45 | moved types parse time: 64ms 46 | candidates parse time : 1ms 47 | C# parse time : 259ms 48 | candidates check time : 42ms 49 | console write time : 0ms 50 | 51 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:10:59 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 52 | [api-updater (non-obsolete-error-filter)] 53 | ---------------------------------- 54 | jit/startup time : 2346.3115ms 55 | moved types parse time: 69ms 56 | candidates parse time : 2ms 57 | C# parse time : 1441ms 58 | candidates check time : 92ms 59 | console write time : 1ms 60 | 61 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:12:26 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 62 | [api-updater (non-obsolete-error-filter)] 63 | ---------------------------------- 64 | jit/startup time : 139.2987ms 65 | moved types parse time: 92ms 66 | candidates parse time : 2ms 67 | C# parse time : 400ms 68 | candidates check time : 66ms 69 | console write time : 0ms 70 | 71 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:34:41 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 72 | [api-updater (non-obsolete-error-filter)] 73 | ---------------------------------- 74 | jit/startup time : 205.0297ms 75 | moved types parse time: 101ms 76 | candidates parse time : 3ms 77 | C# parse time : 340ms 78 | candidates check time : 69ms 79 | console write time : 0ms 80 | 81 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:35:50 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 82 | [api-updater (non-obsolete-error-filter)] 83 | ---------------------------------- 84 | jit/startup time : 269.0165ms 85 | moved types parse time: 81ms 86 | candidates parse time : 2ms 87 | C# parse time : 417ms 88 | candidates check time : 73ms 89 | console write time : 0ms 90 | 91 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:36:57 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 92 | [api-updater (non-obsolete-error-filter)] 93 | ---------------------------------- 94 | jit/startup time : 271.0074ms 95 | moved types parse time: 94ms 96 | candidates parse time : 2ms 97 | C# parse time : 367ms 98 | candidates check time : 56ms 99 | console write time : 0ms 100 | 101 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:37:01 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 102 | [api-updater (non-obsolete-error-filter)] 103 | ---------------------------------- 104 | jit/startup time : 342.0109ms 105 | moved types parse time: 81ms 106 | candidates parse time : 3ms 107 | C# parse time : 600ms 108 | candidates check time : 97ms 109 | console write time : 1ms 110 | 111 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:37:06 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 112 | [api-updater (non-obsolete-error-filter)] 113 | ---------------------------------- 114 | jit/startup time : 339.0757ms 115 | moved types parse time: 120ms 116 | candidates parse time : 2ms 117 | C# parse time : 598ms 118 | candidates check time : 81ms 119 | console write time : 0ms 120 | 121 | [api-updater (non-obsolete-error-filter)] 12/14/2021 12:37:58 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 122 | [api-updater (non-obsolete-error-filter)] 123 | ---------------------------------- 124 | jit/startup time : 242.0076ms 125 | moved types parse time: 103ms 126 | candidates parse time : 4ms 127 | C# parse time : 440ms 128 | candidates check time : 85ms 129 | console write time : 0ms 130 | 131 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:18:37 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 132 | [api-updater (non-obsolete-error-filter)] 133 | ---------------------------------- 134 | jit/startup time : 350.3871ms 135 | moved types parse time: 88ms 136 | candidates parse time : 2ms 137 | C# parse time : 458ms 138 | candidates check time : 95ms 139 | console write time : 1ms 140 | 141 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:31:11 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 142 | [api-updater (non-obsolete-error-filter)] 143 | ---------------------------------- 144 | jit/startup time : 211.3052ms 145 | moved types parse time: 69ms 146 | candidates parse time : 3ms 147 | C# parse time : 517ms 148 | candidates check time : 92ms 149 | console write time : 0ms 150 | 151 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:44:24 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 152 | [api-updater (non-obsolete-error-filter)] 153 | ---------------------------------- 154 | jit/startup time : 93.632ms 155 | moved types parse time: 57ms 156 | candidates parse time : 1ms 157 | C# parse time : 268ms 158 | candidates check time : 74ms 159 | console write time : 0ms 160 | 161 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:46:42 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 162 | [api-updater (non-obsolete-error-filter)] 163 | ---------------------------------- 164 | jit/startup time : 210.3044ms 165 | moved types parse time: 85ms 166 | candidates parse time : 3ms 167 | C# parse time : 350ms 168 | candidates check time : 76ms 169 | console write time : 0ms 170 | 171 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:52:02 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 172 | [api-updater (non-obsolete-error-filter)] 173 | ---------------------------------- 174 | jit/startup time : 124.8683ms 175 | moved types parse time: 104ms 176 | candidates parse time : 3ms 177 | C# parse time : 476ms 178 | candidates check time : 112ms 179 | console write time : 0ms 180 | 181 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:52:14 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 182 | [api-updater (non-obsolete-error-filter)] 183 | ---------------------------------- 184 | jit/startup time : 258.6459ms 185 | moved types parse time: 88ms 186 | candidates parse time : 2ms 187 | C# parse time : 626ms 188 | candidates check time : 85ms 189 | console write time : 1ms 190 | 191 | [api-updater (non-obsolete-error-filter)] 12/14/2021 1:52:23 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 192 | [api-updater (non-obsolete-error-filter)] 193 | ---------------------------------- 194 | jit/startup time : 109.6796ms 195 | moved types parse time: 101ms 196 | candidates parse time : 3ms 197 | C# parse time : 460ms 198 | candidates check time : 64ms 199 | console write time : 0ms 200 | 201 | [api-updater (non-obsolete-error-filter)] 12/14/2021 5:16:20 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 202 | [api-updater (non-obsolete-error-filter)] Exception caught while loading types from D:\Users\medmo\Documents\Unity\Projects\Color Palette\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll (some types may not be loaded) 203 | Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown. 204 | at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes(System.Reflection.Assembly,bool) 205 | at System.Reflection.Assembly.GetTypes () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 206 | at APIUpdater.NonObsoleteApiUpdaterDetector.ExtraInfoParser+d__3.MoveNext () [0x000c8] in <68bff7873e0e4aa69a14dfc30bebbe3e>:0 207 | Could not load file or assembly 'UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 208 | 209 | [api-updater (non-obsolete-error-filter)] 210 | ---------------------------------- 211 | jit/startup time : 960.4664ms 212 | moved types parse time: 57ms 213 | candidates parse time : 1ms 214 | C# parse time : 719ms 215 | candidates check time : 57ms 216 | console write time : 0ms 217 | 218 | [api-updater (non-obsolete-error-filter)] 12/14/2021 5:59:52 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 219 | [api-updater (non-obsolete-error-filter)] 220 | ---------------------------------- 221 | jit/startup time : 953.1209ms 222 | moved types parse time: 56ms 223 | candidates parse time : 1ms 224 | C# parse time : 742ms 225 | candidates check time : 72ms 226 | console write time : 0ms 227 | 228 | [api-updater (non-obsolete-error-filter)] 12/14/2021 7:08:06 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 229 | [api-updater (non-obsolete-error-filter)] 230 | ---------------------------------- 231 | jit/startup time : 116.7366ms 232 | moved types parse time: 111ms 233 | candidates parse time : 3ms 234 | C# parse time : 380ms 235 | candidates check time : 83ms 236 | console write time : 1ms 237 | 238 | [api-updater (non-obsolete-error-filter)] 12/14/2021 7:14:01 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 239 | [api-updater (non-obsolete-error-filter)] 240 | ---------------------------------- 241 | jit/startup time : 125.0063ms 242 | moved types parse time: 129ms 243 | candidates parse time : 3ms 244 | C# parse time : 437ms 245 | candidates check time : 84ms 246 | console write time : 1ms 247 | 248 | [api-updater (non-obsolete-error-filter)] 12/14/2021 7:30:56 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 249 | [api-updater (non-obsolete-error-filter)] 250 | ---------------------------------- 251 | jit/startup time : 109.4022ms 252 | moved types parse time: 95ms 253 | candidates parse time : 2ms 254 | C# parse time : 397ms 255 | candidates check time : 55ms 256 | console write time : 0ms 257 | 258 | [api-updater (non-obsolete-error-filter)] 12/14/2021 7:33:23 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 259 | [api-updater (non-obsolete-error-filter)] 260 | ---------------------------------- 261 | jit/startup time : 140.592ms 262 | moved types parse time: 87ms 263 | candidates parse time : 2ms 264 | C# parse time : 331ms 265 | candidates check time : 56ms 266 | console write time : 0ms 267 | 268 | [api-updater (non-obsolete-error-filter)] 12/14/2021 7:41:19 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 269 | [api-updater (non-obsolete-error-filter)] 270 | ---------------------------------- 271 | jit/startup time : 187.3728ms 272 | moved types parse time: 60ms 273 | candidates parse time : 2ms 274 | C# parse time : 387ms 275 | candidates check time : 49ms 276 | console write time : 0ms 277 | 278 | [api-updater (non-obsolete-error-filter)] 12/14/2021 7:44:48 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 279 | [api-updater (non-obsolete-error-filter)] 280 | ---------------------------------- 281 | jit/startup time : 140.5977ms 282 | moved types parse time: 59ms 283 | candidates parse time : 2ms 284 | C# parse time : 262ms 285 | candidates check time : 43ms 286 | console write time : 0ms 287 | 288 | [api-updater (non-obsolete-error-filter)] 12/19/2021 5:46:09 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 289 | [api-updater (non-obsolete-error-filter)] 290 | ---------------------------------- 291 | jit/startup time : 1181.8197ms 292 | moved types parse time: 69ms 293 | candidates parse time : 1ms 294 | C# parse time : 860ms 295 | candidates check time : 55ms 296 | console write time : 2ms 297 | 298 | [api-updater (non-obsolete-error-filter)] 12/19/2021 6:03:47 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 299 | [api-updater (non-obsolete-error-filter)] 300 | ---------------------------------- 301 | jit/startup time : 124.2063ms 302 | moved types parse time: 60ms 303 | candidates parse time : 1ms 304 | C# parse time : 267ms 305 | candidates check time : 45ms 306 | console write time : 0ms 307 | 308 | [api-updater (non-obsolete-error-filter)] 12/19/2021 6:05:38 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 309 | [api-updater (non-obsolete-error-filter)] 310 | ---------------------------------- 311 | jit/startup time : 101.7445ms 312 | moved types parse time: 58ms 313 | candidates parse time : 1ms 314 | C# parse time : 238ms 315 | candidates check time : 51ms 316 | console write time : 0ms 317 | 318 | [api-updater (non-obsolete-error-filter)] 12/19/2021 6:16:33 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 319 | [api-updater (non-obsolete-error-filter)] 320 | ---------------------------------- 321 | jit/startup time : 114.9985ms 322 | moved types parse time: 61ms 323 | candidates parse time : 1ms 324 | C# parse time : 288ms 325 | candidates check time : 44ms 326 | console write time : 0ms 327 | 328 | [api-updater (non-obsolete-error-filter)] 12/19/2021 7:53:30 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 329 | [api-updater (non-obsolete-error-filter)] 330 | ---------------------------------- 331 | jit/startup time : 302.1234ms 332 | moved types parse time: 85ms 333 | candidates parse time : 2ms 334 | C# parse time : 387ms 335 | candidates check time : 151ms 336 | console write time : 1ms 337 | 338 | [api-updater (non-obsolete-error-filter)] 12/19/2021 7:53:35 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 339 | [api-updater (non-obsolete-error-filter)] 340 | ---------------------------------- 341 | jit/startup time : 182.0037ms 342 | moved types parse time: 87ms 343 | candidates parse time : 2ms 344 | C# parse time : 351ms 345 | candidates check time : 190ms 346 | console write time : 0ms 347 | 348 | [api-updater (non-obsolete-error-filter)] 12/19/2021 7:55:59 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 349 | [api-updater (non-obsolete-error-filter)] 350 | ---------------------------------- 351 | jit/startup time : 145.8991ms 352 | moved types parse time: 59ms 353 | candidates parse time : 1ms 354 | C# parse time : 445ms 355 | candidates check time : 180ms 356 | console write time : 0ms 357 | 358 | [api-updater (non-obsolete-error-filter)] 12/19/2021 7:59:15 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 359 | [api-updater (non-obsolete-error-filter)] 360 | ---------------------------------- 361 | jit/startup time : 141.0307ms 362 | moved types parse time: 58ms 363 | candidates parse time : 1ms 364 | C# parse time : 437ms 365 | candidates check time : 155ms 366 | console write time : 0ms 367 | 368 | [api-updater (non-obsolete-error-filter)] 12/19/2021 7:59:43 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 369 | [api-updater (non-obsolete-error-filter)] 370 | ---------------------------------- 371 | jit/startup time : 278.0067ms 372 | moved types parse time: 81ms 373 | candidates parse time : 2ms 374 | C# parse time : 319ms 375 | candidates check time : 141ms 376 | console write time : 0ms 377 | 378 | [api-updater (non-obsolete-error-filter)] 12/19/2021 8:01:56 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 379 | [api-updater (non-obsolete-error-filter)] 380 | ---------------------------------- 381 | jit/startup time : 230.0547ms 382 | moved types parse time: 62ms 383 | candidates parse time : 2ms 384 | C# parse time : 285ms 385 | candidates check time : 203ms 386 | console write time : 0ms 387 | 388 | [api-updater (non-obsolete-error-filter)] 12/19/2021 8:04:14 PM : Starting C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe 389 | [api-updater (non-obsolete-error-filter)] 390 | ---------------------------------- 391 | jit/startup time : 147.6093ms 392 | moved types parse time: 55ms 393 | candidates parse time : 1ms 394 | C# parse time : 527ms 395 | candidates check time : 135ms 396 | console write time : 0ms 397 | 398 | -------------------------------------------------------------------------------- /Logs/AssetImportWorker0-prev.log: -------------------------------------------------------------------------------- 1 | Using pre-set license 2 | Built from '2020.3/staging' branch; Version is '2020.3.19f1 (68f137dc9bbe) revision 6877495'; Using compiler version '192528614'; Build Type 'Release' 3 | OS: 'Windows 10 Pro; OS build 22000.348; Version 2009; 64bit' Language: 'en' Physical Memory: 12167 MB 4 | BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 0 5 | 6 | COMMAND LINE ARGUMENTS: 7 | C:\Program Files\Unity\Hub\Editor\2020.3.19f1\Editor\Unity.exe 8 | -adb2 9 | -batchMode 10 | -noUpm 11 | -name 12 | AssetImportWorker0 13 | -projectPath 14 | D:/Users/medmo/Documents/Unity/Projects/Color Palette 15 | -logFile 16 | Logs/AssetImportWorker0.log 17 | -srvPort 18 | 52112 19 | Successfully changed project path to: D:/Users/medmo/Documents/Unity/Projects/Color Palette 20 | D:/Users/medmo/Documents/Unity/Projects/Color Palette 21 | Using Asset Import Pipeline V2. 22 | Refreshing native plugins compatible for Editor in 67.07 ms, found 3 plugins. 23 | Preloading 0 native plugins for Editor in 0.00 ms. 24 | Initialize engine version: 2020.3.19f1 (68f137dc9bbe) 25 | [Subsystems] Discovering subsystems at path C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Resources/UnitySubsystems 26 | [Subsystems] Discovering subsystems at path D:/Users/medmo/Documents/Unity/Projects/Color Palette/Assets 27 | GfxDevice: creating device client; threaded=0 28 | Direct3D: 29 | Version: Direct3D 11.0 [level 11.1] 30 | Renderer: NVIDIA GeForce GTX 1050 (ID=0x1c8d) 31 | Vendor: 32 | VRAM: 4019 MB 33 | Driver: 27.21.14.6280 34 | Initialize mono 35 | Mono path[0] = 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Managed' 36 | Mono path[1] = 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/MonoBleedingEdge/lib/mono/unityjit' 37 | Mono config path = 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/MonoBleedingEdge/etc' 38 | Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=127.0.0.1:56800 39 | Begin MonoManager ReloadAssembly 40 | Registering precompiled unity dll's ... 41 | Register platform support module: C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines/WebGLSupport/UnityEditor.WebGL.Extensions.dll 42 | Register platform support module: C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll 43 | Registered in 0.002242 seconds. 44 | Native extension for WindowsStandalone target not found 45 | Native extension for WebGL target not found 46 | Refreshing native plugins compatible for Editor in 51.62 ms, found 3 plugins. 47 | Preloading 0 native plugins for Editor in 0.00 ms. 48 | Mono: successfully reloaded assembly 49 | - Completed reload, in 1.733 seconds 50 | Domain Reload Profiling: 51 | ReloadAssembly (1734ms) 52 | BeginReloadAssembly (65ms) 53 | ExecutionOrderSort (0ms) 54 | DisableScriptedObjects (0ms) 55 | BackupInstance (0ms) 56 | ReleaseScriptingObjects (0ms) 57 | CreateAndSetChildDomain (1ms) 58 | EndReloadAssembly (640ms) 59 | LoadAssemblies (63ms) 60 | RebuildTransferFunctionScriptingTraits (0ms) 61 | SetupTypeCache (253ms) 62 | ReleaseScriptCaches (0ms) 63 | RebuildScriptCaches (38ms) 64 | SetupLoadedEditorAssemblies (241ms) 65 | LogAssemblyErrors (0ms) 66 | InitializePlatformSupportModulesInManaged (5ms) 67 | SetLoadedEditorAssemblies (0ms) 68 | RefreshPlugins (52ms) 69 | BeforeProcessingInitializeOnLoad (27ms) 70 | ProcessInitializeOnLoadAttributes (107ms) 71 | ProcessInitializeOnLoadMethodAttributes (49ms) 72 | AfterProcessingInitializeOnLoad (0ms) 73 | EditorAssembliesLoaded (0ms) 74 | ExecutionOrderSort2 (0ms) 75 | AwakeInstancesAfterBackupRestoration (0ms) 76 | Platform modules already initialized, skipping 77 | Registering precompiled user dll's ... 78 | Registered in 0.007114 seconds. 79 | Begin MonoManager ReloadAssembly 80 | Native extension for WindowsStandalone target not found 81 | Native extension for WebGL target not found 82 | Refreshing native plugins compatible for Editor in 55.34 ms, found 3 plugins. 83 | Preloading 0 native plugins for Editor in 0.00 ms. 84 | Mono: successfully reloaded assembly 85 | - Completed reload, in 1.631 seconds 86 | Domain Reload Profiling: 87 | ReloadAssembly (1631ms) 88 | BeginReloadAssembly (209ms) 89 | ExecutionOrderSort (0ms) 90 | DisableScriptedObjects (7ms) 91 | BackupInstance (0ms) 92 | ReleaseScriptingObjects (0ms) 93 | CreateAndSetChildDomain (33ms) 94 | EndReloadAssembly (1328ms) 95 | LoadAssemblies (163ms) 96 | RebuildTransferFunctionScriptingTraits (0ms) 97 | SetupTypeCache (396ms) 98 | ReleaseScriptCaches (1ms) 99 | RebuildScriptCaches (69ms) 100 | SetupLoadedEditorAssemblies (506ms) 101 | LogAssemblyErrors (0ms) 102 | InitializePlatformSupportModulesInManaged (6ms) 103 | SetLoadedEditorAssemblies (0ms) 104 | RefreshPlugins (55ms) 105 | BeforeProcessingInitializeOnLoad (118ms) 106 | ProcessInitializeOnLoadAttributes (298ms) 107 | ProcessInitializeOnLoadMethodAttributes (23ms) 108 | AfterProcessingInitializeOnLoad (6ms) 109 | EditorAssembliesLoaded (0ms) 110 | ExecutionOrderSort2 (0ms) 111 | AwakeInstancesAfterBackupRestoration (10ms) 112 | Platform modules already initialized, skipping 113 | ======================================================================== 114 | Worker process is ready to serve import requests 115 | Launched and connected shader compiler UnityShaderCompiler.exe after 0.06 seconds 116 | Refreshing native plugins compatible for Editor in 0.50 ms, found 3 plugins. 117 | Preloading 0 native plugins for Editor in 0.00 ms. 118 | Unloading 2096 Unused Serialized files (Serialized files now loaded: 0) 119 | System memory in use before: 93.3 MB. 120 | System memory in use after: 93.4 MB. 121 | 122 | Unloading 26 unused Assets to reduce memory usage. Loaded Objects now: 2536. 123 | Total: 3.748600 ms (FindLiveObjects: 0.221300 ms CreateObjectMapping: 0.145600 ms MarkObjects: 3.288100 ms DeleteObjects: 0.092000 ms) 124 | 125 | AssetImportParameters requested are different than current active one (requested -> active): 126 | custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> 127 | custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> 128 | custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> 129 | custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> 130 | custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> 131 | custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> 132 | custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> 133 | custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 134 | custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 135 | ======================================================================== 136 | Received Prepare 137 | Registering precompiled user dll's ... 138 | Registered in 0.006043 seconds. 139 | Begin MonoManager ReloadAssembly 140 | Native extension for WindowsStandalone target not found 141 | Native extension for WebGL target not found 142 | Refreshing native plugins compatible for Editor in 0.55 ms, found 3 plugins. 143 | Preloading 0 native plugins for Editor in 0.00 ms. 144 | Mono: successfully reloaded assembly 145 | - Completed reload, in 1.390 seconds 146 | Domain Reload Profiling: 147 | ReloadAssembly (1391ms) 148 | BeginReloadAssembly (161ms) 149 | ExecutionOrderSort (0ms) 150 | DisableScriptedObjects (9ms) 151 | BackupInstance (0ms) 152 | ReleaseScriptingObjects (0ms) 153 | CreateAndSetChildDomain (55ms) 154 | EndReloadAssembly (1153ms) 155 | LoadAssemblies (119ms) 156 | RebuildTransferFunctionScriptingTraits (0ms) 157 | SetupTypeCache (386ms) 158 | ReleaseScriptCaches (1ms) 159 | RebuildScriptCaches (56ms) 160 | SetupLoadedEditorAssemblies (439ms) 161 | LogAssemblyErrors (0ms) 162 | InitializePlatformSupportModulesInManaged (8ms) 163 | SetLoadedEditorAssemblies (1ms) 164 | RefreshPlugins (1ms) 165 | BeforeProcessingInitializeOnLoad (126ms) 166 | ProcessInitializeOnLoadAttributes (290ms) 167 | ProcessInitializeOnLoadMethodAttributes (7ms) 168 | AfterProcessingInitializeOnLoad (6ms) 169 | EditorAssembliesLoaded (0ms) 170 | ExecutionOrderSort2 (0ms) 171 | AwakeInstancesAfterBackupRestoration (14ms) 172 | Platform modules already initialized, skipping 173 | Refreshing native plugins compatible for Editor in 0.52 ms, found 3 plugins. 174 | Preloading 0 native plugins for Editor in 0.00 ms. 175 | Unloading 2086 Unused Serialized files (Serialized files now loaded: 0) 176 | System memory in use before: 92.7 MB. 177 | System memory in use after: 92.8 MB. 178 | 179 | Unloading 14 unused Assets to reduce memory usage. Loaded Objects now: 2539. 180 | Total: 4.794400 ms (FindLiveObjects: 0.262000 ms CreateObjectMapping: 0.138800 ms MarkObjects: 4.341800 ms DeleteObjects: 0.049200 ms) 181 | 182 | AssetImportParameters requested are different than current active one (requested -> active): 183 | custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> 184 | custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> 185 | custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> 186 | custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> 187 | custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> 188 | custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> 189 | custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> 190 | custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 191 | custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 192 | ======================================================================== 193 | Received Import Request. 194 | path: Assets/Palette/ColorCutQuantizer.cs 195 | artifactKey: Guid(d2e3b6e4689534e41821c5923db5860c) Importer(815301076,1909f56bfc062723c751e8b465ee728b) 196 | Start importing Assets/Palette/ColorCutQuantizer.cs using Guid(d2e3b6e4689534e41821c5923db5860c) Importer(815301076,1909f56bfc062723c751e8b465ee728b) -> (artifact id: '5379e34eb5b4e51d080a1d1645c6a784') in 0.056813 seconds 197 | Import took 0.136650 seconds . 198 | 199 | -------------------------------------------------------------------------------- /Logs/AssetImportWorker0.log: -------------------------------------------------------------------------------- 1 | Using pre-set license 2 | Built from '2020.3/staging' branch; Version is '2020.3.19f1 (68f137dc9bbe) revision 6877495'; Using compiler version '192528614'; Build Type 'Release' 3 | OS: 'Windows 10 Pro; OS build 22000.376; Version 2009; 64bit' Language: 'en' Physical Memory: 12167 MB 4 | BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 0 5 | 6 | COMMAND LINE ARGUMENTS: 7 | C:\Program Files\Unity\Hub\Editor\2020.3.19f1\Editor\Unity.exe 8 | -adb2 9 | -batchMode 10 | -noUpm 11 | -name 12 | AssetImportWorker0 13 | -projectPath 14 | D:/Users/medmo/Documents/Unity/Projects/Color Palette 15 | -logFile 16 | Logs/AssetImportWorker0.log 17 | -srvPort 18 | 55439 19 | Successfully changed project path to: D:/Users/medmo/Documents/Unity/Projects/Color Palette 20 | D:/Users/medmo/Documents/Unity/Projects/Color Palette 21 | Using Asset Import Pipeline V2. 22 | Refreshing native plugins compatible for Editor in 105.17 ms, found 3 plugins. 23 | Preloading 0 native plugins for Editor in 0.00 ms. 24 | Initialize engine version: 2020.3.19f1 (68f137dc9bbe) 25 | [Subsystems] Discovering subsystems at path C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Resources/UnitySubsystems 26 | [Subsystems] Discovering subsystems at path D:/Users/medmo/Documents/Unity/Projects/Color Palette/Assets 27 | GfxDevice: creating device client; threaded=0 28 | Direct3D: 29 | Version: Direct3D 11.0 [level 11.1] 30 | Renderer: NVIDIA GeForce GTX 1050 (ID=0x1c8d) 31 | Vendor: 32 | VRAM: 4019 MB 33 | Driver: 27.21.14.6280 34 | Initialize mono 35 | Mono path[0] = 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/Managed' 36 | Mono path[1] = 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/MonoBleedingEdge/lib/mono/unityjit' 37 | Mono config path = 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/MonoBleedingEdge/etc' 38 | Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=127.0.0.1:56124 39 | Begin MonoManager ReloadAssembly 40 | Registering precompiled unity dll's ... 41 | Register platform support module: C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines/WebGLSupport/UnityEditor.WebGL.Extensions.dll 42 | Register platform support module: C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll 43 | Registered in 0.002585 seconds. 44 | Native extension for WindowsStandalone target not found 45 | Native extension for WebGL target not found 46 | Refreshing native plugins compatible for Editor in 48.60 ms, found 3 plugins. 47 | Preloading 0 native plugins for Editor in 0.00 ms. 48 | Mono: successfully reloaded assembly 49 | - Completed reload, in 2.845 seconds 50 | Domain Reload Profiling: 51 | ReloadAssembly (2846ms) 52 | BeginReloadAssembly (62ms) 53 | ExecutionOrderSort (0ms) 54 | DisableScriptedObjects (0ms) 55 | BackupInstance (0ms) 56 | ReleaseScriptingObjects (0ms) 57 | CreateAndSetChildDomain (1ms) 58 | EndReloadAssembly (536ms) 59 | LoadAssemblies (59ms) 60 | RebuildTransferFunctionScriptingTraits (0ms) 61 | SetupTypeCache (184ms) 62 | ReleaseScriptCaches (0ms) 63 | RebuildScriptCaches (38ms) 64 | SetupLoadedEditorAssemblies (236ms) 65 | LogAssemblyErrors (0ms) 66 | InitializePlatformSupportModulesInManaged (5ms) 67 | SetLoadedEditorAssemblies (0ms) 68 | RefreshPlugins (49ms) 69 | BeforeProcessingInitializeOnLoad (18ms) 70 | ProcessInitializeOnLoadAttributes (94ms) 71 | ProcessInitializeOnLoadMethodAttributes (70ms) 72 | AfterProcessingInitializeOnLoad (0ms) 73 | EditorAssembliesLoaded (0ms) 74 | ExecutionOrderSort2 (0ms) 75 | AwakeInstancesAfterBackupRestoration (0ms) 76 | Platform modules already initialized, skipping 77 | Registering precompiled user dll's ... 78 | Registered in 0.008293 seconds. 79 | Begin MonoManager ReloadAssembly 80 | Native extension for WindowsStandalone target not found 81 | Native extension for WebGL target not found 82 | Refreshing native plugins compatible for Editor in 48.48 ms, found 3 plugins. 83 | Preloading 0 native plugins for Editor in 0.00 ms. 84 | Mono: successfully reloaded assembly 85 | - Completed reload, in 1.291 seconds 86 | Domain Reload Profiling: 87 | ReloadAssembly (1292ms) 88 | BeginReloadAssembly (158ms) 89 | ExecutionOrderSort (0ms) 90 | DisableScriptedObjects (4ms) 91 | BackupInstance (0ms) 92 | ReleaseScriptingObjects (0ms) 93 | CreateAndSetChildDomain (20ms) 94 | EndReloadAssembly (1057ms) 95 | LoadAssemblies (112ms) 96 | RebuildTransferFunctionScriptingTraits (0ms) 97 | SetupTypeCache (335ms) 98 | ReleaseScriptCaches (0ms) 99 | RebuildScriptCaches (56ms) 100 | SetupLoadedEditorAssemblies (410ms) 101 | LogAssemblyErrors (0ms) 102 | InitializePlatformSupportModulesInManaged (5ms) 103 | SetLoadedEditorAssemblies (0ms) 104 | RefreshPlugins (49ms) 105 | BeforeProcessingInitializeOnLoad (104ms) 106 | ProcessInitializeOnLoadAttributes (231ms) 107 | ProcessInitializeOnLoadMethodAttributes (15ms) 108 | AfterProcessingInitializeOnLoad (7ms) 109 | EditorAssembliesLoaded (0ms) 110 | ExecutionOrderSort2 (0ms) 111 | AwakeInstancesAfterBackupRestoration (7ms) 112 | Platform modules already initialized, skipping 113 | ======================================================================== 114 | Worker process is ready to serve import requests 115 | Launched and connected shader compiler UnityShaderCompiler.exe after 0.11 seconds 116 | Refreshing native plugins compatible for Editor in 0.45 ms, found 3 plugins. 117 | Preloading 0 native plugins for Editor in 0.00 ms. 118 | Unloading 2096 Unused Serialized files (Serialized files now loaded: 0) 119 | System memory in use before: 93.2 MB. 120 | System memory in use after: 93.3 MB. 121 | 122 | Unloading 26 unused Assets to reduce memory usage. Loaded Objects now: 2536. 123 | Total: 3.778000 ms (FindLiveObjects: 0.214500 ms CreateObjectMapping: 0.079200 ms MarkObjects: 3.362400 ms DeleteObjects: 0.120700 ms) 124 | 125 | AssetImportParameters requested are different than current active one (requested -> active): 126 | custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> 127 | custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> 128 | custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> 129 | custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> 130 | custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> 131 | custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> 132 | custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> 133 | custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 134 | custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 135 | ======================================================================== 136 | Received Import Request. 137 | path: Assets/Palette/ColorUtils.cs 138 | artifactKey: Guid(49b756a8bfc458242b7d49565a12033c) Importer(815301076,1909f56bfc062723c751e8b465ee728b) 139 | Start importing Assets/Palette/ColorUtils.cs using Guid(49b756a8bfc458242b7d49565a12033c) Importer(815301076,1909f56bfc062723c751e8b465ee728b) -> (artifact id: 'd9cda9f5fd7a0cfafd887d75a3e51e5c') in 0.095086 seconds 140 | Import took 0.122531 seconds . 141 | 142 | ======================================================================== 143 | Received Prepare 144 | Registering precompiled user dll's ... 145 | Registered in 0.007309 seconds. 146 | Begin MonoManager ReloadAssembly 147 | Native extension for WindowsStandalone target not found 148 | Native extension for WebGL target not found 149 | Refreshing native plugins compatible for Editor in 0.65 ms, found 3 plugins. 150 | Preloading 0 native plugins for Editor in 0.00 ms. 151 | Mono: successfully reloaded assembly 152 | - Completed reload, in 1.546 seconds 153 | Domain Reload Profiling: 154 | ReloadAssembly (1547ms) 155 | BeginReloadAssembly (142ms) 156 | ExecutionOrderSort (0ms) 157 | DisableScriptedObjects (10ms) 158 | BackupInstance (0ms) 159 | ReleaseScriptingObjects (0ms) 160 | CreateAndSetChildDomain (45ms) 161 | EndReloadAssembly (1309ms) 162 | LoadAssemblies (118ms) 163 | RebuildTransferFunctionScriptingTraits (0ms) 164 | SetupTypeCache (370ms) 165 | ReleaseScriptCaches (1ms) 166 | RebuildScriptCaches (50ms) 167 | SetupLoadedEditorAssemblies (585ms) 168 | LogAssemblyErrors (0ms) 169 | InitializePlatformSupportModulesInManaged (7ms) 170 | SetLoadedEditorAssemblies (1ms) 171 | RefreshPlugins (1ms) 172 | BeforeProcessingInitializeOnLoad (135ms) 173 | ProcessInitializeOnLoadAttributes (418ms) 174 | ProcessInitializeOnLoadMethodAttributes (12ms) 175 | AfterProcessingInitializeOnLoad (11ms) 176 | EditorAssembliesLoaded (0ms) 177 | ExecutionOrderSort2 (0ms) 178 | AwakeInstancesAfterBackupRestoration (24ms) 179 | Platform modules already initialized, skipping 180 | Refreshing native plugins compatible for Editor in 0.45 ms, found 3 plugins. 181 | Preloading 0 native plugins for Editor in 0.00 ms. 182 | Unloading 2086 Unused Serialized files (Serialized files now loaded: 0) 183 | System memory in use before: 92.7 MB. 184 | System memory in use after: 92.8 MB. 185 | 186 | Unloading 14 unused Assets to reduce memory usage. Loaded Objects now: 2539. 187 | Total: 3.636100 ms (FindLiveObjects: 0.211300 ms CreateObjectMapping: 0.085700 ms MarkObjects: 3.300500 ms DeleteObjects: 0.037500 ms) 188 | 189 | AssetImportParameters requested are different than current active one (requested -> active): 190 | custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> 191 | custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> 192 | custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> 193 | custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> 194 | custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> 195 | custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> 196 | custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> 197 | custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 198 | custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> 199 | -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Sat Dec 11 20:03:33 2021 3 | 4 | Packages were changed. 5 | Update Mode: mergeDefaultDependencies 6 | 7 | The following packages were added: 8 | com.unity.collab-proxy@1.9.0 9 | com.unity.ide.rider@2.0.7 10 | com.unity.ide.visualstudio@2.0.11 11 | com.unity.ide.vscode@1.2.4 12 | com.unity.modules.ai@1.0.0 13 | com.unity.modules.androidjni@1.0.0 14 | com.unity.modules.animation@1.0.0 15 | com.unity.modules.assetbundle@1.0.0 16 | com.unity.modules.audio@1.0.0 17 | com.unity.modules.cloth@1.0.0 18 | com.unity.modules.director@1.0.0 19 | com.unity.modules.imageconversion@1.0.0 20 | com.unity.modules.imgui@1.0.0 21 | com.unity.modules.jsonserialize@1.0.0 22 | com.unity.modules.particlesystem@1.0.0 23 | com.unity.modules.physics@1.0.0 24 | com.unity.modules.physics2d@1.0.0 25 | com.unity.modules.screencapture@1.0.0 26 | com.unity.modules.terrain@1.0.0 27 | com.unity.modules.terrainphysics@1.0.0 28 | com.unity.modules.tilemap@1.0.0 29 | com.unity.modules.ui@1.0.0 30 | com.unity.modules.uielements@1.0.0 31 | com.unity.modules.umbra@1.0.0 32 | com.unity.modules.unityanalytics@1.0.0 33 | com.unity.modules.unitywebrequest@1.0.0 34 | com.unity.modules.unitywebrequestassetbundle@1.0.0 35 | com.unity.modules.unitywebrequestaudio@1.0.0 36 | com.unity.modules.unitywebrequesttexture@1.0.0 37 | com.unity.modules.unitywebrequestwww@1.0.0 38 | com.unity.modules.vehicles@1.0.0 39 | com.unity.modules.video@1.0.0 40 | com.unity.modules.vr@1.0.0 41 | com.unity.modules.wind@1.0.0 42 | com.unity.modules.xr@1.0.0 43 | com.unity.test-framework@1.1.29 44 | com.unity.textmeshpro@3.0.6 45 | com.unity.timeline@1.4.8 46 | com.unity.ugui@1.0.0 47 | The following packages were updated: 48 | com.unity.2d.animation from version 5.0.1 to 5.0.7 49 | com.unity.2d.psdimporter from version 4.0.1 to 4.1.0 50 | com.unity.2d.spriteshape from version 5.0.1 to 5.1.4 51 | -------------------------------------------------------------------------------- /Logs/shadercompiler-AssetImportWorker0.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe0.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe1.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe2.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe3.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe4.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe5.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe6.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Logs/shadercompiler-UnityShaderCompiler.exe7.log: -------------------------------------------------------------------------------- 1 | Base path: 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2020.3.19f1/Editor/Data/PlaybackEngines' 2 | Cmd: initializeCompiler 3 | 4 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.animation": "5.0.7", 4 | "com.unity.2d.pixel-perfect": "4.0.1", 5 | "com.unity.2d.psdimporter": "4.1.0", 6 | "com.unity.2d.sprite": "1.0.0", 7 | "com.unity.2d.spriteshape": "5.1.4", 8 | "com.unity.2d.tilemap": "1.0.0", 9 | "com.unity.collab-proxy": "1.9.0", 10 | "com.unity.ide.rider": "2.0.7", 11 | "com.unity.ide.visualstudio": "2.0.11", 12 | "com.unity.ide.vscode": "1.2.4", 13 | "com.unity.test-framework": "1.1.29", 14 | "com.unity.textmeshpro": "3.0.6", 15 | "com.unity.timeline": "1.4.8", 16 | "com.unity.ugui": "1.0.0", 17 | "com.unity.modules.ai": "1.0.0", 18 | "com.unity.modules.androidjni": "1.0.0", 19 | "com.unity.modules.animation": "1.0.0", 20 | "com.unity.modules.assetbundle": "1.0.0", 21 | "com.unity.modules.audio": "1.0.0", 22 | "com.unity.modules.cloth": "1.0.0", 23 | "com.unity.modules.director": "1.0.0", 24 | "com.unity.modules.imageconversion": "1.0.0", 25 | "com.unity.modules.imgui": "1.0.0", 26 | "com.unity.modules.jsonserialize": "1.0.0", 27 | "com.unity.modules.particlesystem": "1.0.0", 28 | "com.unity.modules.physics": "1.0.0", 29 | "com.unity.modules.physics2d": "1.0.0", 30 | "com.unity.modules.screencapture": "1.0.0", 31 | "com.unity.modules.terrain": "1.0.0", 32 | "com.unity.modules.terrainphysics": "1.0.0", 33 | "com.unity.modules.tilemap": "1.0.0", 34 | "com.unity.modules.ui": "1.0.0", 35 | "com.unity.modules.uielements": "1.0.0", 36 | "com.unity.modules.umbra": "1.0.0", 37 | "com.unity.modules.unityanalytics": "1.0.0", 38 | "com.unity.modules.unitywebrequest": "1.0.0", 39 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 40 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 41 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 42 | "com.unity.modules.unitywebrequestwww": "1.0.0", 43 | "com.unity.modules.vehicles": "1.0.0", 44 | "com.unity.modules.video": "1.0.0", 45 | "com.unity.modules.vr": "1.0.0", 46 | "com.unity.modules.wind": "1.0.0", 47 | "com.unity.modules.xr": "1.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.animation": { 4 | "version": "5.0.7", 5 | "depth": 0, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.2d.common": "4.0.3", 9 | "com.unity.mathematics": "1.1.0", 10 | "com.unity.2d.sprite": "1.0.0", 11 | "com.unity.modules.animation": "1.0.0", 12 | "com.unity.modules.uielements": "1.0.0" 13 | }, 14 | "url": "https://packages.unity.com" 15 | }, 16 | "com.unity.2d.common": { 17 | "version": "4.0.3", 18 | "depth": 1, 19 | "source": "registry", 20 | "dependencies": { 21 | "com.unity.2d.sprite": "1.0.0", 22 | "com.unity.modules.uielements": "1.0.0" 23 | }, 24 | "url": "https://packages.unity.com" 25 | }, 26 | "com.unity.2d.path": { 27 | "version": "4.0.2", 28 | "depth": 1, 29 | "source": "registry", 30 | "dependencies": {}, 31 | "url": "https://packages.unity.com" 32 | }, 33 | "com.unity.2d.pixel-perfect": { 34 | "version": "4.0.1", 35 | "depth": 0, 36 | "source": "registry", 37 | "dependencies": {}, 38 | "url": "https://packages.unity.com" 39 | }, 40 | "com.unity.2d.psdimporter": { 41 | "version": "4.1.0", 42 | "depth": 0, 43 | "source": "registry", 44 | "dependencies": { 45 | "com.unity.2d.common": "4.0.3", 46 | "com.unity.2d.animation": "5.0.6", 47 | "com.unity.2d.sprite": "1.0.0" 48 | }, 49 | "url": "https://packages.unity.com" 50 | }, 51 | "com.unity.2d.sprite": { 52 | "version": "1.0.0", 53 | "depth": 0, 54 | "source": "builtin", 55 | "dependencies": {} 56 | }, 57 | "com.unity.2d.spriteshape": { 58 | "version": "5.1.4", 59 | "depth": 0, 60 | "source": "registry", 61 | "dependencies": { 62 | "com.unity.mathematics": "1.1.0", 63 | "com.unity.2d.common": "4.0.3", 64 | "com.unity.2d.path": "4.0.2", 65 | "com.unity.modules.physics2d": "1.0.0" 66 | }, 67 | "url": "https://packages.unity.com" 68 | }, 69 | "com.unity.2d.tilemap": { 70 | "version": "1.0.0", 71 | "depth": 0, 72 | "source": "builtin", 73 | "dependencies": {} 74 | }, 75 | "com.unity.collab-proxy": { 76 | "version": "1.9.0", 77 | "depth": 0, 78 | "source": "registry", 79 | "dependencies": {}, 80 | "url": "https://packages.unity.com" 81 | }, 82 | "com.unity.ext.nunit": { 83 | "version": "1.0.6", 84 | "depth": 1, 85 | "source": "registry", 86 | "dependencies": {}, 87 | "url": "https://packages.unity.com" 88 | }, 89 | "com.unity.ide.rider": { 90 | "version": "2.0.7", 91 | "depth": 0, 92 | "source": "registry", 93 | "dependencies": { 94 | "com.unity.test-framework": "1.1.1" 95 | }, 96 | "url": "https://packages.unity.com" 97 | }, 98 | "com.unity.ide.visualstudio": { 99 | "version": "2.0.11", 100 | "depth": 0, 101 | "source": "registry", 102 | "dependencies": { 103 | "com.unity.test-framework": "1.1.9" 104 | }, 105 | "url": "https://packages.unity.com" 106 | }, 107 | "com.unity.ide.vscode": { 108 | "version": "1.2.4", 109 | "depth": 0, 110 | "source": "registry", 111 | "dependencies": {}, 112 | "url": "https://packages.unity.com" 113 | }, 114 | "com.unity.mathematics": { 115 | "version": "1.1.0", 116 | "depth": 1, 117 | "source": "registry", 118 | "dependencies": {}, 119 | "url": "https://packages.unity.com" 120 | }, 121 | "com.unity.test-framework": { 122 | "version": "1.1.29", 123 | "depth": 0, 124 | "source": "registry", 125 | "dependencies": { 126 | "com.unity.ext.nunit": "1.0.6", 127 | "com.unity.modules.imgui": "1.0.0", 128 | "com.unity.modules.jsonserialize": "1.0.0" 129 | }, 130 | "url": "https://packages.unity.com" 131 | }, 132 | "com.unity.textmeshpro": { 133 | "version": "3.0.6", 134 | "depth": 0, 135 | "source": "registry", 136 | "dependencies": { 137 | "com.unity.ugui": "1.0.0" 138 | }, 139 | "url": "https://packages.unity.com" 140 | }, 141 | "com.unity.timeline": { 142 | "version": "1.4.8", 143 | "depth": 0, 144 | "source": "registry", 145 | "dependencies": { 146 | "com.unity.modules.director": "1.0.0", 147 | "com.unity.modules.animation": "1.0.0", 148 | "com.unity.modules.audio": "1.0.0", 149 | "com.unity.modules.particlesystem": "1.0.0" 150 | }, 151 | "url": "https://packages.unity.com" 152 | }, 153 | "com.unity.ugui": { 154 | "version": "1.0.0", 155 | "depth": 0, 156 | "source": "builtin", 157 | "dependencies": { 158 | "com.unity.modules.ui": "1.0.0", 159 | "com.unity.modules.imgui": "1.0.0" 160 | } 161 | }, 162 | "com.unity.modules.ai": { 163 | "version": "1.0.0", 164 | "depth": 0, 165 | "source": "builtin", 166 | "dependencies": {} 167 | }, 168 | "com.unity.modules.androidjni": { 169 | "version": "1.0.0", 170 | "depth": 0, 171 | "source": "builtin", 172 | "dependencies": {} 173 | }, 174 | "com.unity.modules.animation": { 175 | "version": "1.0.0", 176 | "depth": 0, 177 | "source": "builtin", 178 | "dependencies": {} 179 | }, 180 | "com.unity.modules.assetbundle": { 181 | "version": "1.0.0", 182 | "depth": 0, 183 | "source": "builtin", 184 | "dependencies": {} 185 | }, 186 | "com.unity.modules.audio": { 187 | "version": "1.0.0", 188 | "depth": 0, 189 | "source": "builtin", 190 | "dependencies": {} 191 | }, 192 | "com.unity.modules.cloth": { 193 | "version": "1.0.0", 194 | "depth": 0, 195 | "source": "builtin", 196 | "dependencies": { 197 | "com.unity.modules.physics": "1.0.0" 198 | } 199 | }, 200 | "com.unity.modules.director": { 201 | "version": "1.0.0", 202 | "depth": 0, 203 | "source": "builtin", 204 | "dependencies": { 205 | "com.unity.modules.audio": "1.0.0", 206 | "com.unity.modules.animation": "1.0.0" 207 | } 208 | }, 209 | "com.unity.modules.imageconversion": { 210 | "version": "1.0.0", 211 | "depth": 0, 212 | "source": "builtin", 213 | "dependencies": {} 214 | }, 215 | "com.unity.modules.imgui": { 216 | "version": "1.0.0", 217 | "depth": 0, 218 | "source": "builtin", 219 | "dependencies": {} 220 | }, 221 | "com.unity.modules.jsonserialize": { 222 | "version": "1.0.0", 223 | "depth": 0, 224 | "source": "builtin", 225 | "dependencies": {} 226 | }, 227 | "com.unity.modules.particlesystem": { 228 | "version": "1.0.0", 229 | "depth": 0, 230 | "source": "builtin", 231 | "dependencies": {} 232 | }, 233 | "com.unity.modules.physics": { 234 | "version": "1.0.0", 235 | "depth": 0, 236 | "source": "builtin", 237 | "dependencies": {} 238 | }, 239 | "com.unity.modules.physics2d": { 240 | "version": "1.0.0", 241 | "depth": 0, 242 | "source": "builtin", 243 | "dependencies": {} 244 | }, 245 | "com.unity.modules.screencapture": { 246 | "version": "1.0.0", 247 | "depth": 0, 248 | "source": "builtin", 249 | "dependencies": { 250 | "com.unity.modules.imageconversion": "1.0.0" 251 | } 252 | }, 253 | "com.unity.modules.subsystems": { 254 | "version": "1.0.0", 255 | "depth": 1, 256 | "source": "builtin", 257 | "dependencies": { 258 | "com.unity.modules.jsonserialize": "1.0.0" 259 | } 260 | }, 261 | "com.unity.modules.terrain": { 262 | "version": "1.0.0", 263 | "depth": 0, 264 | "source": "builtin", 265 | "dependencies": {} 266 | }, 267 | "com.unity.modules.terrainphysics": { 268 | "version": "1.0.0", 269 | "depth": 0, 270 | "source": "builtin", 271 | "dependencies": { 272 | "com.unity.modules.physics": "1.0.0", 273 | "com.unity.modules.terrain": "1.0.0" 274 | } 275 | }, 276 | "com.unity.modules.tilemap": { 277 | "version": "1.0.0", 278 | "depth": 0, 279 | "source": "builtin", 280 | "dependencies": { 281 | "com.unity.modules.physics2d": "1.0.0" 282 | } 283 | }, 284 | "com.unity.modules.ui": { 285 | "version": "1.0.0", 286 | "depth": 0, 287 | "source": "builtin", 288 | "dependencies": {} 289 | }, 290 | "com.unity.modules.uielements": { 291 | "version": "1.0.0", 292 | "depth": 0, 293 | "source": "builtin", 294 | "dependencies": { 295 | "com.unity.modules.ui": "1.0.0", 296 | "com.unity.modules.imgui": "1.0.0", 297 | "com.unity.modules.jsonserialize": "1.0.0", 298 | "com.unity.modules.uielementsnative": "1.0.0" 299 | } 300 | }, 301 | "com.unity.modules.uielementsnative": { 302 | "version": "1.0.0", 303 | "depth": 1, 304 | "source": "builtin", 305 | "dependencies": { 306 | "com.unity.modules.ui": "1.0.0", 307 | "com.unity.modules.imgui": "1.0.0", 308 | "com.unity.modules.jsonserialize": "1.0.0" 309 | } 310 | }, 311 | "com.unity.modules.umbra": { 312 | "version": "1.0.0", 313 | "depth": 0, 314 | "source": "builtin", 315 | "dependencies": {} 316 | }, 317 | "com.unity.modules.unityanalytics": { 318 | "version": "1.0.0", 319 | "depth": 0, 320 | "source": "builtin", 321 | "dependencies": { 322 | "com.unity.modules.unitywebrequest": "1.0.0", 323 | "com.unity.modules.jsonserialize": "1.0.0" 324 | } 325 | }, 326 | "com.unity.modules.unitywebrequest": { 327 | "version": "1.0.0", 328 | "depth": 0, 329 | "source": "builtin", 330 | "dependencies": {} 331 | }, 332 | "com.unity.modules.unitywebrequestassetbundle": { 333 | "version": "1.0.0", 334 | "depth": 0, 335 | "source": "builtin", 336 | "dependencies": { 337 | "com.unity.modules.assetbundle": "1.0.0", 338 | "com.unity.modules.unitywebrequest": "1.0.0" 339 | } 340 | }, 341 | "com.unity.modules.unitywebrequestaudio": { 342 | "version": "1.0.0", 343 | "depth": 0, 344 | "source": "builtin", 345 | "dependencies": { 346 | "com.unity.modules.unitywebrequest": "1.0.0", 347 | "com.unity.modules.audio": "1.0.0" 348 | } 349 | }, 350 | "com.unity.modules.unitywebrequesttexture": { 351 | "version": "1.0.0", 352 | "depth": 0, 353 | "source": "builtin", 354 | "dependencies": { 355 | "com.unity.modules.unitywebrequest": "1.0.0", 356 | "com.unity.modules.imageconversion": "1.0.0" 357 | } 358 | }, 359 | "com.unity.modules.unitywebrequestwww": { 360 | "version": "1.0.0", 361 | "depth": 0, 362 | "source": "builtin", 363 | "dependencies": { 364 | "com.unity.modules.unitywebrequest": "1.0.0", 365 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 366 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 367 | "com.unity.modules.audio": "1.0.0", 368 | "com.unity.modules.assetbundle": "1.0.0", 369 | "com.unity.modules.imageconversion": "1.0.0" 370 | } 371 | }, 372 | "com.unity.modules.vehicles": { 373 | "version": "1.0.0", 374 | "depth": 0, 375 | "source": "builtin", 376 | "dependencies": { 377 | "com.unity.modules.physics": "1.0.0" 378 | } 379 | }, 380 | "com.unity.modules.video": { 381 | "version": "1.0.0", 382 | "depth": 0, 383 | "source": "builtin", 384 | "dependencies": { 385 | "com.unity.modules.audio": "1.0.0", 386 | "com.unity.modules.ui": "1.0.0", 387 | "com.unity.modules.unitywebrequest": "1.0.0" 388 | } 389 | }, 390 | "com.unity.modules.vr": { 391 | "version": "1.0.0", 392 | "depth": 0, 393 | "source": "builtin", 394 | "dependencies": { 395 | "com.unity.modules.jsonserialize": "1.0.0", 396 | "com.unity.modules.physics": "1.0.0", 397 | "com.unity.modules.xr": "1.0.0" 398 | } 399 | }, 400 | "com.unity.modules.wind": { 401 | "version": "1.0.0", 402 | "depth": 0, 403 | "source": "builtin", 404 | "dependencies": {} 405 | }, 406 | "com.unity.modules.xr": { 407 | "version": "1.0.0", 408 | "depth": 0, 409 | "source": "builtin", 410 | "dependencies": { 411 | "com.unity.modules.physics": "1.0.0", 412 | "com.unity.modules.jsonserialize": "1.0.0", 413 | "com.unity.modules.subsystems": "1.0.0" 414 | } 415 | } 416 | } 417 | } 418 | -------------------------------------------------------------------------------- /Preview/Screenshot 2021-12-19 160946.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ookii-tsuki/unity-color-palette/b5dcfe53d4b681f216ff79e7400465459f530a1e/Preview/Screenshot 2021-12-19 160946.png -------------------------------------------------------------------------------- /Preview/Screenshot 2021-12-19 161054.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ookii-tsuki/unity-color-palette/b5dcfe53d4b681f216ff79e7400465459f530a1e/Preview/Screenshot 2021-12-19 161054.png -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0.1 18 | m_ClothInterCollisionStiffness: 0.2 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_SolverType: 0 36 | m_DefaultMaxAngularSpeed: 50 37 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: 2cda990e2423bbf4892e6590ba056729 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 10 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 1 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 4 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 31 | m_AssetPipelineMode: 1 32 | m_CacheServerMode: 0 33 | m_CacheServerEndpoint: 34 | m_CacheServerNamespacePrefix: default 35 | m_CacheServerEnableDownload: 1 36 | m_CacheServerEnableUpload: 1 37 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_VideoShadersIncludeMode: 2 32 | m_AlwaysIncludedShaders: 33 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | m_LogWhenShaderIsCompiled: 0 64 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_SimulationMode: 0 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 22 7 | productGUID: 5fbb2ef9ac8a17e419bb042e299cf9bb 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: Color Palette 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1920 46 | defaultScreenHeight: 1080 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | mipStripping: 0 53 | numberOfMipsStripped: 0 54 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 55 | iosShowActivityIndicatorOnLoading: -1 56 | androidShowActivityIndicatorOnLoading: -1 57 | iosUseCustomAppBackgroundBehavior: 0 58 | iosAllowHTTPDownload: 1 59 | allowedAutorotateToPortrait: 1 60 | allowedAutorotateToPortraitUpsideDown: 1 61 | allowedAutorotateToLandscapeRight: 1 62 | allowedAutorotateToLandscapeLeft: 1 63 | useOSAutorotation: 1 64 | use32BitDisplayBuffer: 1 65 | preserveFramebufferAlpha: 0 66 | disableDepthAndStencilBuffers: 0 67 | androidStartInFullscreen: 1 68 | androidRenderOutsideSafeArea: 1 69 | androidUseSwappy: 1 70 | androidBlitType: 0 71 | androidResizableWindow: 0 72 | androidDefaultWindowWidth: 1920 73 | androidDefaultWindowHeight: 1080 74 | androidMinimumWindowWidth: 400 75 | androidMinimumWindowHeight: 300 76 | androidFullscreenMode: 1 77 | defaultIsNativeResolution: 1 78 | macRetinaSupport: 1 79 | runInBackground: 0 80 | captureSingleScreen: 0 81 | muteOtherAudioSources: 0 82 | Prepare IOS For Recording: 0 83 | Force IOS Speakers When Recording: 0 84 | deferSystemGesturesMode: 0 85 | hideHomeButton: 0 86 | submitAnalytics: 1 87 | usePlayerLog: 1 88 | bakeCollisionMeshes: 0 89 | forceSingleInstance: 0 90 | useFlipModelSwapchain: 1 91 | resizableWindow: 0 92 | useMacAppStoreValidation: 0 93 | macAppStoreCategory: public.app-category.games 94 | gpuSkinning: 0 95 | xboxPIXTextureCapture: 0 96 | xboxEnableAvatar: 0 97 | xboxEnableKinect: 0 98 | xboxEnableKinectAutoTracking: 0 99 | xboxEnableFitness: 0 100 | visibleInBackground: 1 101 | allowFullscreenSwitch: 1 102 | fullscreenMode: 1 103 | xboxSpeechDB: 0 104 | xboxEnableHeadOrientation: 0 105 | xboxEnableGuest: 0 106 | xboxEnablePIXSampling: 0 107 | metalFramebufferOnly: 0 108 | xboxOneResolution: 0 109 | xboxOneSResolution: 0 110 | xboxOneXResolution: 3 111 | xboxOneMonoLoggingLevel: 0 112 | xboxOneLoggingLevel: 1 113 | xboxOneDisableEsram: 0 114 | xboxOneEnableTypeOptimization: 0 115 | xboxOnePresentImmediateThreshold: 0 116 | switchQueueCommandMemory: 1048576 117 | switchQueueControlMemory: 16384 118 | switchQueueComputeMemory: 262144 119 | switchNVNShaderPoolsGranularity: 33554432 120 | switchNVNDefaultPoolsGranularity: 16777216 121 | switchNVNOtherPoolsGranularity: 16777216 122 | switchNVNMaxPublicTextureIDCount: 0 123 | switchNVNMaxPublicSamplerIDCount: 0 124 | stadiaPresentMode: 0 125 | stadiaTargetFramerate: 0 126 | vulkanNumSwapchainBuffers: 3 127 | vulkanEnableSetSRGBWrite: 0 128 | vulkanEnablePreTransform: 0 129 | vulkanEnableLateAcquireNextImage: 0 130 | vulkanEnableCommandBufferRecycling: 1 131 | m_SupportedAspectRatios: 132 | 4:3: 1 133 | 5:4: 1 134 | 16:10: 1 135 | 16:9: 1 136 | Others: 1 137 | bundleVersion: 1.0 138 | preloadedAssets: [] 139 | metroInputSource: 0 140 | wsaTransparentSwapchain: 0 141 | m_HolographicPauseOnTrackingLoss: 1 142 | xboxOneDisableKinectGpuReservation: 1 143 | xboxOneEnable7thCore: 1 144 | vrSettings: 145 | enable360StereoCapture: 0 146 | isWsaHolographicRemotingEnabled: 0 147 | enableFrameTimingStats: 0 148 | useHDRDisplay: 0 149 | D3DHDRBitDepth: 0 150 | m_ColorGamuts: 00000000 151 | targetPixelDensity: 30 152 | resolutionScalingMode: 0 153 | androidSupportedAspectRatio: 1 154 | androidMaxAspectRatio: 2.1 155 | applicationIdentifier: 156 | Standalone: com.DefaultCompany.ColorPalette 157 | buildNumber: 158 | Standalone: 0 159 | iPhone: 0 160 | tvOS: 0 161 | overrideDefaultApplicationIdentifier: 0 162 | AndroidBundleVersionCode: 1 163 | AndroidMinSdkVersion: 19 164 | AndroidTargetSdkVersion: 0 165 | AndroidPreferredInstallLocation: 1 166 | aotOptions: 167 | stripEngineCode: 1 168 | iPhoneStrippingLevel: 0 169 | iPhoneScriptCallOptimization: 0 170 | ForceInternetPermission: 0 171 | ForceSDCardPermission: 0 172 | CreateWallpaper: 0 173 | APKExpansionFiles: 0 174 | keepLoadedShadersAlive: 0 175 | StripUnusedMeshComponents: 0 176 | VertexChannelCompressionMask: 4054 177 | iPhoneSdkVersion: 988 178 | iOSTargetOSVersionString: 11.0 179 | tvOSSdkVersion: 0 180 | tvOSRequireExtendedGameController: 0 181 | tvOSTargetOSVersionString: 11.0 182 | uIPrerenderedIcon: 0 183 | uIRequiresPersistentWiFi: 0 184 | uIRequiresFullScreen: 1 185 | uIStatusBarHidden: 1 186 | uIExitOnSuspend: 0 187 | uIStatusBarStyle: 0 188 | appleTVSplashScreen: {fileID: 0} 189 | appleTVSplashScreen2x: {fileID: 0} 190 | tvOSSmallIconLayers: [] 191 | tvOSSmallIconLayers2x: [] 192 | tvOSLargeIconLayers: [] 193 | tvOSLargeIconLayers2x: [] 194 | tvOSTopShelfImageLayers: [] 195 | tvOSTopShelfImageLayers2x: [] 196 | tvOSTopShelfImageWideLayers: [] 197 | tvOSTopShelfImageWideLayers2x: [] 198 | iOSLaunchScreenType: 0 199 | iOSLaunchScreenPortrait: {fileID: 0} 200 | iOSLaunchScreenLandscape: {fileID: 0} 201 | iOSLaunchScreenBackgroundColor: 202 | serializedVersion: 2 203 | rgba: 0 204 | iOSLaunchScreenFillPct: 100 205 | iOSLaunchScreenSize: 100 206 | iOSLaunchScreenCustomXibPath: 207 | iOSLaunchScreeniPadType: 0 208 | iOSLaunchScreeniPadImage: {fileID: 0} 209 | iOSLaunchScreeniPadBackgroundColor: 210 | serializedVersion: 2 211 | rgba: 0 212 | iOSLaunchScreeniPadFillPct: 100 213 | iOSLaunchScreeniPadSize: 100 214 | iOSLaunchScreeniPadCustomXibPath: 215 | iOSLaunchScreenCustomStoryboardPath: 216 | iOSLaunchScreeniPadCustomStoryboardPath: 217 | iOSDeviceRequirements: [] 218 | iOSURLSchemes: [] 219 | iOSBackgroundModes: 0 220 | iOSMetalForceHardShadows: 0 221 | metalEditorSupport: 1 222 | metalAPIValidation: 1 223 | iOSRenderExtraFrameOnPause: 0 224 | iosCopyPluginsCodeInsteadOfSymlink: 0 225 | appleDeveloperTeamID: 226 | iOSManualSigningProvisioningProfileID: 227 | tvOSManualSigningProvisioningProfileID: 228 | iOSManualSigningProvisioningProfileType: 0 229 | tvOSManualSigningProvisioningProfileType: 0 230 | appleEnableAutomaticSigning: 0 231 | iOSRequireARKit: 0 232 | iOSAutomaticallyDetectAndAddCapabilities: 1 233 | appleEnableProMotion: 0 234 | shaderPrecisionModel: 0 235 | clonedFromGUID: 10ad67313f4034357812315f3c407484 236 | templatePackageId: com.unity.template.2d@5.0.0 237 | templateDefaultScene: Assets/Scenes/SampleScene.unity 238 | useCustomMainManifest: 0 239 | useCustomLauncherManifest: 0 240 | useCustomMainGradleTemplate: 0 241 | useCustomLauncherGradleManifest: 0 242 | useCustomBaseGradleTemplate: 0 243 | useCustomGradlePropertiesTemplate: 0 244 | useCustomProguardFile: 0 245 | AndroidTargetArchitectures: 1 246 | AndroidTargetDevices: 0 247 | AndroidSplashScreenScale: 0 248 | androidSplashScreen: {fileID: 0} 249 | AndroidKeystoreName: 250 | AndroidKeyaliasName: 251 | AndroidBuildApkPerCpuArchitecture: 0 252 | AndroidTVCompatibility: 0 253 | AndroidIsGame: 1 254 | AndroidEnableTango: 0 255 | androidEnableBanner: 1 256 | androidUseLowAccuracyLocation: 0 257 | androidUseCustomKeystore: 0 258 | m_AndroidBanners: 259 | - width: 320 260 | height: 180 261 | banner: {fileID: 0} 262 | androidGamepadSupportLevel: 0 263 | chromeosInputEmulation: 1 264 | AndroidMinifyWithR8: 0 265 | AndroidMinifyRelease: 0 266 | AndroidMinifyDebug: 0 267 | AndroidValidateAppBundleSize: 1 268 | AndroidAppBundleSizeToValidate: 150 269 | m_BuildTargetIcons: [] 270 | m_BuildTargetPlatformIcons: [] 271 | m_BuildTargetBatching: [] 272 | m_BuildTargetGraphicsJobs: 273 | - m_BuildTarget: MacStandaloneSupport 274 | m_GraphicsJobs: 0 275 | - m_BuildTarget: Switch 276 | m_GraphicsJobs: 0 277 | - m_BuildTarget: MetroSupport 278 | m_GraphicsJobs: 0 279 | - m_BuildTarget: AppleTVSupport 280 | m_GraphicsJobs: 0 281 | - m_BuildTarget: BJMSupport 282 | m_GraphicsJobs: 0 283 | - m_BuildTarget: LinuxStandaloneSupport 284 | m_GraphicsJobs: 0 285 | - m_BuildTarget: PS4Player 286 | m_GraphicsJobs: 0 287 | - m_BuildTarget: iOSSupport 288 | m_GraphicsJobs: 0 289 | - m_BuildTarget: WindowsStandaloneSupport 290 | m_GraphicsJobs: 0 291 | - m_BuildTarget: XboxOnePlayer 292 | m_GraphicsJobs: 0 293 | - m_BuildTarget: LuminSupport 294 | m_GraphicsJobs: 0 295 | - m_BuildTarget: AndroidPlayer 296 | m_GraphicsJobs: 0 297 | - m_BuildTarget: WebGLSupport 298 | m_GraphicsJobs: 0 299 | m_BuildTargetGraphicsJobMode: [] 300 | m_BuildTargetGraphicsAPIs: 301 | - m_BuildTarget: AndroidPlayer 302 | m_APIs: 150000000b000000 303 | m_Automatic: 0 304 | - m_BuildTarget: iOSSupport 305 | m_APIs: 10000000 306 | m_Automatic: 1 307 | m_BuildTargetVRSettings: [] 308 | openGLRequireES31: 0 309 | openGLRequireES31AEP: 0 310 | openGLRequireES32: 0 311 | m_TemplateCustomTags: {} 312 | mobileMTRendering: 313 | Android: 1 314 | iPhone: 1 315 | tvOS: 1 316 | m_BuildTargetGroupLightmapEncodingQuality: [] 317 | m_BuildTargetGroupLightmapSettings: [] 318 | m_BuildTargetNormalMapEncoding: [] 319 | playModeTestRunnerEnabled: 0 320 | runPlayModeTestAsEditModeTest: 0 321 | actionOnDotNetUnhandledException: 1 322 | enableInternalProfiler: 0 323 | logObjCUncaughtExceptions: 1 324 | enableCrashReportAPI: 0 325 | cameraUsageDescription: 326 | locationUsageDescription: 327 | microphoneUsageDescription: 328 | bluetoothUsageDescription: 329 | switchNMETAOverride: 330 | switchNetLibKey: 331 | switchSocketMemoryPoolSize: 6144 332 | switchSocketAllocatorPoolSize: 128 333 | switchSocketConcurrencyLimit: 14 334 | switchScreenResolutionBehavior: 2 335 | switchUseCPUProfiler: 0 336 | switchUseGOLDLinker: 0 337 | switchApplicationID: 0x01004b9000490000 338 | switchNSODependencies: 339 | switchTitleNames_0: 340 | switchTitleNames_1: 341 | switchTitleNames_2: 342 | switchTitleNames_3: 343 | switchTitleNames_4: 344 | switchTitleNames_5: 345 | switchTitleNames_6: 346 | switchTitleNames_7: 347 | switchTitleNames_8: 348 | switchTitleNames_9: 349 | switchTitleNames_10: 350 | switchTitleNames_11: 351 | switchTitleNames_12: 352 | switchTitleNames_13: 353 | switchTitleNames_14: 354 | switchTitleNames_15: 355 | switchPublisherNames_0: 356 | switchPublisherNames_1: 357 | switchPublisherNames_2: 358 | switchPublisherNames_3: 359 | switchPublisherNames_4: 360 | switchPublisherNames_5: 361 | switchPublisherNames_6: 362 | switchPublisherNames_7: 363 | switchPublisherNames_8: 364 | switchPublisherNames_9: 365 | switchPublisherNames_10: 366 | switchPublisherNames_11: 367 | switchPublisherNames_12: 368 | switchPublisherNames_13: 369 | switchPublisherNames_14: 370 | switchPublisherNames_15: 371 | switchIcons_0: {fileID: 0} 372 | switchIcons_1: {fileID: 0} 373 | switchIcons_2: {fileID: 0} 374 | switchIcons_3: {fileID: 0} 375 | switchIcons_4: {fileID: 0} 376 | switchIcons_5: {fileID: 0} 377 | switchIcons_6: {fileID: 0} 378 | switchIcons_7: {fileID: 0} 379 | switchIcons_8: {fileID: 0} 380 | switchIcons_9: {fileID: 0} 381 | switchIcons_10: {fileID: 0} 382 | switchIcons_11: {fileID: 0} 383 | switchIcons_12: {fileID: 0} 384 | switchIcons_13: {fileID: 0} 385 | switchIcons_14: {fileID: 0} 386 | switchIcons_15: {fileID: 0} 387 | switchSmallIcons_0: {fileID: 0} 388 | switchSmallIcons_1: {fileID: 0} 389 | switchSmallIcons_2: {fileID: 0} 390 | switchSmallIcons_3: {fileID: 0} 391 | switchSmallIcons_4: {fileID: 0} 392 | switchSmallIcons_5: {fileID: 0} 393 | switchSmallIcons_6: {fileID: 0} 394 | switchSmallIcons_7: {fileID: 0} 395 | switchSmallIcons_8: {fileID: 0} 396 | switchSmallIcons_9: {fileID: 0} 397 | switchSmallIcons_10: {fileID: 0} 398 | switchSmallIcons_11: {fileID: 0} 399 | switchSmallIcons_12: {fileID: 0} 400 | switchSmallIcons_13: {fileID: 0} 401 | switchSmallIcons_14: {fileID: 0} 402 | switchSmallIcons_15: {fileID: 0} 403 | switchManualHTML: 404 | switchAccessibleURLs: 405 | switchLegalInformation: 406 | switchMainThreadStackSize: 1048576 407 | switchPresenceGroupId: 408 | switchLogoHandling: 0 409 | switchReleaseVersion: 0 410 | switchDisplayVersion: 1.0.0 411 | switchStartupUserAccount: 0 412 | switchTouchScreenUsage: 0 413 | switchSupportedLanguagesMask: 0 414 | switchLogoType: 0 415 | switchApplicationErrorCodeCategory: 416 | switchUserAccountSaveDataSize: 0 417 | switchUserAccountSaveDataJournalSize: 0 418 | switchApplicationAttribute: 0 419 | switchCardSpecSize: -1 420 | switchCardSpecClock: -1 421 | switchRatingsMask: 0 422 | switchRatingsInt_0: 0 423 | switchRatingsInt_1: 0 424 | switchRatingsInt_2: 0 425 | switchRatingsInt_3: 0 426 | switchRatingsInt_4: 0 427 | switchRatingsInt_5: 0 428 | switchRatingsInt_6: 0 429 | switchRatingsInt_7: 0 430 | switchRatingsInt_8: 0 431 | switchRatingsInt_9: 0 432 | switchRatingsInt_10: 0 433 | switchRatingsInt_11: 0 434 | switchRatingsInt_12: 0 435 | switchLocalCommunicationIds_0: 436 | switchLocalCommunicationIds_1: 437 | switchLocalCommunicationIds_2: 438 | switchLocalCommunicationIds_3: 439 | switchLocalCommunicationIds_4: 440 | switchLocalCommunicationIds_5: 441 | switchLocalCommunicationIds_6: 442 | switchLocalCommunicationIds_7: 443 | switchParentalControl: 0 444 | switchAllowsScreenshot: 1 445 | switchAllowsVideoCapturing: 1 446 | switchAllowsRuntimeAddOnContentInstall: 0 447 | switchDataLossConfirmation: 0 448 | switchUserAccountLockEnabled: 0 449 | switchSystemResourceMemory: 16777216 450 | switchSupportedNpadStyles: 22 451 | switchNativeFsCacheSize: 32 452 | switchIsHoldTypeHorizontal: 0 453 | switchSupportedNpadCount: 8 454 | switchSocketConfigEnabled: 0 455 | switchTcpInitialSendBufferSize: 32 456 | switchTcpInitialReceiveBufferSize: 64 457 | switchTcpAutoSendBufferSizeMax: 256 458 | switchTcpAutoReceiveBufferSizeMax: 256 459 | switchUdpSendBufferSize: 9 460 | switchUdpReceiveBufferSize: 42 461 | switchSocketBufferEfficiency: 4 462 | switchSocketInitializeEnabled: 1 463 | switchNetworkInterfaceManagerInitializeEnabled: 1 464 | switchPlayerConnectionEnabled: 1 465 | switchUseNewStyleFilepaths: 0 466 | switchUseMicroSleepForYield: 1 467 | switchMicroSleepForYieldTime: 25 468 | ps4NPAgeRating: 12 469 | ps4NPTitleSecret: 470 | ps4NPTrophyPackPath: 471 | ps4ParentalLevel: 11 472 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 473 | ps4Category: 0 474 | ps4MasterVersion: 01.00 475 | ps4AppVersion: 01.00 476 | ps4AppType: 0 477 | ps4ParamSfxPath: 478 | ps4VideoOutPixelFormat: 0 479 | ps4VideoOutInitialWidth: 1920 480 | ps4VideoOutBaseModeInitialWidth: 1920 481 | ps4VideoOutReprojectionRate: 60 482 | ps4PronunciationXMLPath: 483 | ps4PronunciationSIGPath: 484 | ps4BackgroundImagePath: 485 | ps4StartupImagePath: 486 | ps4StartupImagesFolder: 487 | ps4IconImagesFolder: 488 | ps4SaveDataImagePath: 489 | ps4SdkOverride: 490 | ps4BGMPath: 491 | ps4ShareFilePath: 492 | ps4ShareOverlayImagePath: 493 | ps4PrivacyGuardImagePath: 494 | ps4ExtraSceSysFile: 495 | ps4NPtitleDatPath: 496 | ps4RemotePlayKeyAssignment: -1 497 | ps4RemotePlayKeyMappingDir: 498 | ps4PlayTogetherPlayerCount: 0 499 | ps4EnterButtonAssignment: 2 500 | ps4ApplicationParam1: 0 501 | ps4ApplicationParam2: 0 502 | ps4ApplicationParam3: 0 503 | ps4ApplicationParam4: 0 504 | ps4DownloadDataSize: 0 505 | ps4GarlicHeapSize: 2048 506 | ps4ProGarlicHeapSize: 2560 507 | playerPrefsMaxSize: 32768 508 | ps4Passcode: bi9UOuSpM2Tlh01vOzwvSikHFswuzleh 509 | ps4pnSessions: 1 510 | ps4pnPresence: 1 511 | ps4pnFriends: 1 512 | ps4pnGameCustomData: 1 513 | playerPrefsSupport: 0 514 | enableApplicationExit: 0 515 | resetTempFolder: 1 516 | restrictedAudioUsageRights: 0 517 | ps4UseResolutionFallback: 0 518 | ps4ReprojectionSupport: 0 519 | ps4UseAudio3dBackend: 0 520 | ps4UseLowGarlicFragmentationMode: 1 521 | ps4SocialScreenEnabled: 0 522 | ps4ScriptOptimizationLevel: 2 523 | ps4Audio3dVirtualSpeakerCount: 14 524 | ps4attribCpuUsage: 0 525 | ps4PatchPkgPath: 526 | ps4PatchLatestPkgPath: 527 | ps4PatchChangeinfoPath: 528 | ps4PatchDayOne: 0 529 | ps4attribUserManagement: 0 530 | ps4attribMoveSupport: 0 531 | ps4attrib3DSupport: 0 532 | ps4attribShareSupport: 0 533 | ps4attribExclusiveVR: 0 534 | ps4disableAutoHideSplash: 0 535 | ps4videoRecordingFeaturesUsed: 0 536 | ps4contentSearchFeaturesUsed: 0 537 | ps4CompatibilityPS5: 0 538 | ps4AllowPS5Detection: 0 539 | ps4GPU800MHz: 1 540 | ps4attribEyeToEyeDistanceSettingVR: 0 541 | ps4IncludedModules: [] 542 | ps4attribVROutputEnabled: 0 543 | monoEnv: 544 | splashScreenBackgroundSourceLandscape: {fileID: 0} 545 | splashScreenBackgroundSourcePortrait: {fileID: 0} 546 | blurSplashScreenBackground: 1 547 | spritePackerPolicy: 548 | webGLMemorySize: 32 549 | webGLExceptionSupport: 1 550 | webGLNameFilesAsHashes: 0 551 | webGLDataCaching: 1 552 | webGLDebugSymbols: 0 553 | webGLEmscriptenArgs: 554 | webGLModulesDirectory: 555 | webGLTemplate: APPLICATION:Default 556 | webGLAnalyzeBuildSize: 0 557 | webGLUseEmbeddedResources: 0 558 | webGLCompressionFormat: 0 559 | webGLWasmArithmeticExceptions: 0 560 | webGLLinkerTarget: 1 561 | webGLThreadsSupport: 0 562 | webGLDecompressionFallback: 0 563 | scriptingDefineSymbols: {} 564 | additionalCompilerArguments: {} 565 | platformArchitecture: {} 566 | scriptingBackend: {} 567 | il2cppCompilerConfiguration: {} 568 | managedStrippingLevel: {} 569 | incrementalIl2cppBuild: {} 570 | suppressCommonWarnings: 1 571 | allowUnsafeCode: 0 572 | useDeterministicCompilation: 1 573 | useReferenceAssemblies: 1 574 | enableRoslynAnalyzers: 1 575 | additionalIl2CppArgs: 576 | scriptingRuntimeVersion: 1 577 | gcIncremental: 1 578 | assemblyVersionValidation: 1 579 | gcWBarrierValidation: 0 580 | apiCompatibilityLevelPerPlatform: {} 581 | m_RenderingPath: 1 582 | m_MobileRenderingPath: 1 583 | metroPackageName: 2D_BuiltInRenderer 584 | metroPackageVersion: 585 | metroCertificatePath: 586 | metroCertificatePassword: 587 | metroCertificateSubject: 588 | metroCertificateIssuer: 589 | metroCertificateNotAfter: 0000000000000000 590 | metroApplicationDescription: 2D_BuiltInRenderer 591 | wsaImages: {} 592 | metroTileShortName: 593 | metroTileShowName: 0 594 | metroMediumTileShowName: 0 595 | metroLargeTileShowName: 0 596 | metroWideTileShowName: 0 597 | metroSupportStreamingInstall: 0 598 | metroLastRequiredScene: 0 599 | metroDefaultTileSize: 1 600 | metroTileForegroundText: 2 601 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 602 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} 603 | metroSplashScreenUseBackgroundColor: 0 604 | platformCapabilities: {} 605 | metroTargetDeviceFamilies: {} 606 | metroFTAName: 607 | metroFTAFileTypes: [] 608 | metroProtocolName: 609 | XboxOneProductId: 610 | XboxOneUpdateKey: 611 | XboxOneSandboxId: 612 | XboxOneContentId: 613 | XboxOneTitleId: 614 | XboxOneSCId: 615 | XboxOneGameOsOverridePath: 616 | XboxOnePackagingOverridePath: 617 | XboxOneAppManifestOverridePath: 618 | XboxOneVersion: 1.0.0.0 619 | XboxOnePackageEncryption: 0 620 | XboxOnePackageUpdateGranularity: 2 621 | XboxOneDescription: 622 | XboxOneLanguage: 623 | - enus 624 | XboxOneCapability: [] 625 | XboxOneGameRating: {} 626 | XboxOneIsContentPackage: 0 627 | XboxOneEnhancedXboxCompatibilityMode: 0 628 | XboxOneEnableGPUVariability: 1 629 | XboxOneSockets: {} 630 | XboxOneSplashScreen: {fileID: 0} 631 | XboxOneAllowedProductIds: [] 632 | XboxOnePersistentLocalStorageSize: 0 633 | XboxOneXTitleMemory: 8 634 | XboxOneOverrideIdentityName: 635 | XboxOneOverrideIdentityPublisher: 636 | vrEditorSettings: {} 637 | cloudServicesEnabled: {} 638 | luminIcon: 639 | m_Name: 640 | m_ModelFolderPath: 641 | m_PortalFolderPath: 642 | luminCert: 643 | m_CertPath: 644 | m_SignPackage: 1 645 | luminIsChannelApp: 0 646 | luminVersion: 647 | m_VersionCode: 1 648 | m_VersionName: 649 | apiCompatibilityLevel: 6 650 | activeInputHandler: 0 651 | cloudProjectId: 652 | framebufferDepthMemorylessMode: 0 653 | qualitySettingsNames: [] 654 | projectName: 655 | organizationId: 656 | cloudEnabled: 0 657 | legacyClampBlendShapeWeights: 0 658 | virtualTexturingSupportEnabled: 0 659 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.19f1 2 | m_EditorVersionWithRevision: 2020.3.19f1 (68f137dc9bbe) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 0} 44 | excludedTargetPlatforms: [] 45 | - serializedVersion: 2 46 | name: Low 47 | pixelLightCount: 0 48 | shadows: 0 49 | shadowResolution: 0 50 | shadowProjection: 1 51 | shadowCascades: 1 52 | shadowDistance: 20 53 | shadowNearPlaneOffset: 3 54 | shadowCascade2Split: 0.33333334 55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 56 | shadowmaskMode: 0 57 | skinWeights: 2 58 | textureQuality: 0 59 | anisotropicTextures: 0 60 | antiAliasing: 0 61 | softParticles: 0 62 | softVegetation: 0 63 | realtimeReflectionProbes: 0 64 | billboardsFaceCameraPosition: 0 65 | vSyncCount: 0 66 | lodBias: 0.4 67 | maximumLODLevel: 0 68 | streamingMipmapsActive: 0 69 | streamingMipmapsAddAllCameras: 1 70 | streamingMipmapsMemoryBudget: 512 71 | streamingMipmapsRenderersPerFrame: 512 72 | streamingMipmapsMaxLevelReduction: 2 73 | streamingMipmapsMaxFileIORequests: 1024 74 | particleRaycastBudget: 16 75 | asyncUploadTimeSlice: 2 76 | asyncUploadBufferSize: 16 77 | asyncUploadPersistentBuffer: 1 78 | resolutionScalingFixedDPIFactor: 1 79 | customRenderPipeline: {fileID: 0} 80 | excludedTargetPlatforms: [] 81 | - serializedVersion: 2 82 | name: Medium 83 | pixelLightCount: 1 84 | shadows: 1 85 | shadowResolution: 0 86 | shadowProjection: 1 87 | shadowCascades: 1 88 | shadowDistance: 20 89 | shadowNearPlaneOffset: 3 90 | shadowCascade2Split: 0.33333334 91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 92 | shadowmaskMode: 0 93 | skinWeights: 2 94 | textureQuality: 0 95 | anisotropicTextures: 1 96 | antiAliasing: 0 97 | softParticles: 0 98 | softVegetation: 0 99 | realtimeReflectionProbes: 0 100 | billboardsFaceCameraPosition: 0 101 | vSyncCount: 1 102 | lodBias: 0.7 103 | maximumLODLevel: 0 104 | streamingMipmapsActive: 0 105 | streamingMipmapsAddAllCameras: 1 106 | streamingMipmapsMemoryBudget: 512 107 | streamingMipmapsRenderersPerFrame: 512 108 | streamingMipmapsMaxLevelReduction: 2 109 | streamingMipmapsMaxFileIORequests: 1024 110 | particleRaycastBudget: 64 111 | asyncUploadTimeSlice: 2 112 | asyncUploadBufferSize: 16 113 | asyncUploadPersistentBuffer: 1 114 | resolutionScalingFixedDPIFactor: 1 115 | customRenderPipeline: {fileID: 0} 116 | excludedTargetPlatforms: [] 117 | - serializedVersion: 2 118 | name: High 119 | pixelLightCount: 2 120 | shadows: 2 121 | shadowResolution: 1 122 | shadowProjection: 1 123 | shadowCascades: 2 124 | shadowDistance: 40 125 | shadowNearPlaneOffset: 3 126 | shadowCascade2Split: 0.33333334 127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 128 | shadowmaskMode: 1 129 | skinWeights: 2 130 | textureQuality: 0 131 | anisotropicTextures: 1 132 | antiAliasing: 0 133 | softParticles: 0 134 | softVegetation: 1 135 | realtimeReflectionProbes: 1 136 | billboardsFaceCameraPosition: 1 137 | vSyncCount: 1 138 | lodBias: 1 139 | maximumLODLevel: 0 140 | streamingMipmapsActive: 0 141 | streamingMipmapsAddAllCameras: 1 142 | streamingMipmapsMemoryBudget: 512 143 | streamingMipmapsRenderersPerFrame: 512 144 | streamingMipmapsMaxLevelReduction: 2 145 | streamingMipmapsMaxFileIORequests: 1024 146 | particleRaycastBudget: 256 147 | asyncUploadTimeSlice: 2 148 | asyncUploadBufferSize: 16 149 | asyncUploadPersistentBuffer: 1 150 | resolutionScalingFixedDPIFactor: 1 151 | customRenderPipeline: {fileID: 0} 152 | excludedTargetPlatforms: [] 153 | - serializedVersion: 2 154 | name: Very High 155 | pixelLightCount: 3 156 | shadows: 2 157 | shadowResolution: 2 158 | shadowProjection: 1 159 | shadowCascades: 2 160 | shadowDistance: 70 161 | shadowNearPlaneOffset: 3 162 | shadowCascade2Split: 0.33333334 163 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 164 | shadowmaskMode: 1 165 | skinWeights: 4 166 | textureQuality: 0 167 | anisotropicTextures: 2 168 | antiAliasing: 2 169 | softParticles: 1 170 | softVegetation: 1 171 | realtimeReflectionProbes: 1 172 | billboardsFaceCameraPosition: 1 173 | vSyncCount: 1 174 | lodBias: 1.5 175 | maximumLODLevel: 0 176 | streamingMipmapsActive: 0 177 | streamingMipmapsAddAllCameras: 1 178 | streamingMipmapsMemoryBudget: 512 179 | streamingMipmapsRenderersPerFrame: 512 180 | streamingMipmapsMaxLevelReduction: 2 181 | streamingMipmapsMaxFileIORequests: 1024 182 | particleRaycastBudget: 1024 183 | asyncUploadTimeSlice: 2 184 | asyncUploadBufferSize: 16 185 | asyncUploadPersistentBuffer: 1 186 | resolutionScalingFixedDPIFactor: 1 187 | customRenderPipeline: {fileID: 0} 188 | excludedTargetPlatforms: [] 189 | - serializedVersion: 2 190 | name: Ultra 191 | pixelLightCount: 4 192 | shadows: 2 193 | shadowResolution: 2 194 | shadowProjection: 1 195 | shadowCascades: 4 196 | shadowDistance: 150 197 | shadowNearPlaneOffset: 3 198 | shadowCascade2Split: 0.33333334 199 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 200 | shadowmaskMode: 1 201 | skinWeights: 255 202 | textureQuality: 0 203 | anisotropicTextures: 2 204 | antiAliasing: 2 205 | softParticles: 1 206 | softVegetation: 1 207 | realtimeReflectionProbes: 1 208 | billboardsFaceCameraPosition: 1 209 | vSyncCount: 1 210 | lodBias: 2 211 | maximumLODLevel: 0 212 | streamingMipmapsActive: 0 213 | streamingMipmapsAddAllCameras: 1 214 | streamingMipmapsMemoryBudget: 512 215 | streamingMipmapsRenderersPerFrame: 512 216 | streamingMipmapsMaxLevelReduction: 2 217 | streamingMipmapsMaxFileIORequests: 1024 218 | particleRaycastBudget: 4096 219 | asyncUploadTimeSlice: 2 220 | asyncUploadBufferSize: 16 221 | asyncUploadPersistentBuffer: 1 222 | resolutionScalingFixedDPIFactor: 1 223 | customRenderPipeline: {fileID: 0} 224 | excludedTargetPlatforms: [] 225 | m_PerPlatformDefaultQuality: 226 | Android: 2 227 | Lumin: 5 228 | Nintendo Switch: 5 229 | PS4: 5 230 | Stadia: 5 231 | Standalone: 5 232 | WebGL: 3 233 | Windows Store Apps: 5 234 | XboxOne: 5 235 | iPhone: 2 236 | tvOS: 2 237 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## About The Project 2 | This is a unity library for generating a color palette from an image ported from [Android's Palette API](https://developer.android.com/training/material/palette-colors) 3 | 4 | ## Installation 5 | Download the [Latest release](https://github.com/ookii-tsuki/unity-color-palette/releases) of the unity package and open it while the Unity Editor is open. 6 | 7 | ## Create a palette 8 | A `Palette` object gives you access to the primary colors in an image, as well as the corresponding colors for overlaid text. Use palettes to design your games's style and to dynamically change your games's color scheme based on a given source image. 9 | 10 | ### Generate a Palette instance 11 | Generate a `Palette` instance using `Palette`'s `Generate(Texture2D texture)` function 12 | ```csharp 13 | Palette palette = Palette.Generate(image.sprite.texture); 14 | ``` 15 | Based on the standards of material design, the palette library extracts commonly used color profiles from an image. Each profile is defined by a Target, and colors extracted from the texture image are scored against each profile based on saturation, luminance, and population (number of pixels in the texture represented by the color). For each profile, the color with the best score defines that color profile for the given image. 16 | 17 | The palette library attempts to extract the following six color profiles: 18 | * Light Vibrant 19 | * Vibrant 20 | * Dark Vibrant 21 | * Light Muted 22 | * Muted 23 | * Dark Muted 24 | 25 | Each of `Palette`'s `GetColor()` methods returns the color in the palette associated with that particular profile, where `` is replaced by the name of one of the six color profiles. For example, the method to get the Dark Vibrant color profile is `GetDarkVibrantColor()`. Since not all images will contain all color profiles, you can also provide a default color to return. 26 | 27 | This figure displays a photo and its corresponding color profiles from the `GetColor()` methods. 28 |

29 | 30 |

31 | 32 | ```csharp 33 | MutedColor.color = palette.GetMutedColor(); 34 | VibrantColor.color = palette.GetVibrantColor(); 35 | LightMutedColor.color = palette.GetLightMutedColor(); 36 | LightVibrantColor.color = palette.GetLightVibrantColor(); 37 | DarkMutedColor.color = palette.GetDarkMutedColor(); 38 | DarkVibrantColor.color = palette.GetDarkVibrantColor(); 39 | ``` 40 | You can aso create more comprehensive color schemes using the `GetBodyTextColor()` and `GetTitleTextColor()` extension methods of Unity's `Color`. These methods return colors appropriate for use over the swatch’s color. 41 | ```csharp 42 | Color vibrantColor = palette.GetVibrantColor(); 43 | backgroud.color = vibrantColor; 44 | text.color = vibrantColor.GetTitleTextColor(); 45 | ``` 46 | An example image with its vibrant-colored toolbar and corresponding title text color. 47 |

48 | 49 |

50 | 51 | ## Preview 52 | These are some preview images from the Unity Editor 53 |

54 | 55 |

56 |

57 | 58 |

59 | -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | RecentlyUsedScenePath-0: 9 | value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d 10 | flags: 0 11 | vcSharedLogLevel: 12 | value: 0d5e400f0650 13 | flags: 0 14 | m_VCAutomaticAdd: 1 15 | m_VCDebugCom: 0 16 | m_VCDebugCmd: 0 17 | m_VCDebugOut: 0 18 | m_SemanticMergeMode: 2 19 | m_VCShowFailedCheckout: 1 20 | m_VCOverwriteFailedCheckoutAssets: 1 21 | m_VCProjectOverlayIcons: 1 22 | m_VCHierarchyOverlayIcons: 1 23 | m_VCOtherOverlayIcons: 1 24 | m_VCAllowAsyncUpdate: 1 25 | --------------------------------------------------------------------------------