Consider the following Unity C# script snippet that assigns a texture to a material. What will be the color of the material's main texture pixel at (0,0) after this code runs?
Texture2D tex = new Texture2D(2, 2); tex.SetPixel(0, 0, Color.red); tex.SetPixel(1, 0, Color.green); tex.SetPixel(0, 1, Color.blue); tex.SetPixel(1, 1, Color.white); tex.Apply(); Material mat = new Material(Shader.Find("Standard")); mat.mainTexture = tex; Color pixelColor = ((Texture2D)mat.mainTexture).GetPixel(0, 0); Debug.Log(pixelColor);
Remember that SetPixel sets the color at the specified coordinates before Apply() updates the texture.
The pixel at (0,0) was set to Color.red, so when we read it back, it returns red.
In Unity's Standard Shader, which property name is used to control how smooth or shiny a material appears?
Think about the term that relates to surface reflection sharpness.
The "_Glossiness" property controls the smoothness or shininess of the material's surface.
Look at this code snippet. The texture is created and assigned to the material, but the object remains untextured in the scene. What is the most likely cause?
Texture2D tex = new Texture2D(128, 128); // Forgot to call tex.Apply() for (int y = 0; y < 128; y++) { for (int x = 0; x < 128; x++) { tex.SetPixel(x, y, Color.yellow); } } Material mat = new Material(Shader.Find("Standard")); mat.mainTexture = tex;
Remember that Texture2D changes require a specific method call to update.
Without calling tex.Apply(), the texture changes are not sent to the GPU, so the material shows no texture.
You want to tile a texture twice in both X and Y directions and offset it by 0.5 on X axis. Which code snippet correctly sets this on a material?
Remember that mainTextureScale and mainTextureOffset are properties, but SetTextureScale and SetTextureOffset require the texture property name.
Using SetTextureScale and SetTextureOffset with "_MainTex" is the correct way to set tiling and offset for the main texture.
This Unity C# code creates a 4x4 texture where each pixel color depends on its coordinates. How many unique colors does the resulting texture have?
Texture2D tex = new Texture2D(4, 4); for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { Color c = (x == y) ? Color.black : Color.white; tex.SetPixel(x, y, c); } } tex.Apply();
Think about how many pixels are black and how many are white.
Pixels on the diagonal (where x == y) are black, all others are white, so only two unique colors exist.