Bird
Raised Fist0
Unityframework~5 mins

Material properties in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Material in Unity?
A Material in Unity defines how a surface looks by controlling its color, texture, and how it reacts to light.
Click to reveal answer
beginner
How do you change the color of a Material in Unity using code?
You can change the color by accessing the Material's color property, for example:
material.color = Color.red;
Click to reveal answer
intermediate
What is the difference between a Material and a Shader in Unity?
A Shader is a program that tells the computer how to draw something. A Material uses a Shader and sets its properties like color or texture.
Click to reveal answer
intermediate
How can you access a Material's texture property in Unity?
You can get or set a texture using:
material.mainTexture or material.SetTexture("_MainTex", texture);
Click to reveal answer
advanced
What happens if you modify a Material directly on a Renderer component in Unity?
Modifying a Material directly on a Renderer changes the shared Material for all objects using it. To change only one object, use renderer.material to get a unique copy.
Click to reveal answer
Which property would you use to change the main color of a Material in Unity?
Amaterial.color
Bmaterial.texture
Cmaterial.shader
Dmaterial.light
What does a Shader do in Unity?
AStores textures only
BDefines how a surface looks by controlling light and color
CIs the same as a Material
DControls the physics of an object
How do you get a unique copy of a Material from a Renderer to modify it without affecting others?
Arenderer.material
Brenderer.sharedMaterial
Crenderer.getMaterial()
Drenderer.copyMaterial
Which method sets a texture property on a Material?
Amaterial.GetTexture("_MainTex")
Bmaterial.SetColor("_MainTex", color)
Cmaterial.SetTexture("_MainTex", texture)
Dmaterial.ApplyTexture(texture)
If you want to change the look of all objects sharing the same Material, what should you modify?
AThe Renderer component
BThe material property
CThe MeshFilter
DThe sharedMaterial
Explain how Materials and Shaders work together in Unity to create the appearance of an object.
Think about how a recipe (Shader) and ingredients (Material) combine.
You got /3 concepts.
    Describe the difference between modifying 'material' and 'sharedMaterial' on a Renderer component.
    Consider if you want to change one object or many.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does renderer.material.color control in Unity?
      easy
      A. The position of the object
      B. The color of the object's material
      C. The texture applied to the object
      D. The size of the object

      Solution

      1. Step 1: Understand the property name

        The property color inside renderer.material refers to the color attribute of the material.
      2. Step 2: Relate to object appearance

        Changing this property changes how the object looks in terms of color, not texture, position, or size.
      3. Final Answer:

        The color of the object's material -> Option B
      4. Quick Check:

        renderer.material.color changes color [OK]
      Hint: Color property changes object color, not texture or size [OK]
      Common Mistakes:
      • Confusing color with texture
      • Thinking it changes object position
      • Assuming it changes object scale
      2. Which of the following is the correct way to set a material's color to red in Unity C#?
      easy
      A. renderer.material.color = Color.red;
      B. renderer.material.color = "red";
      C. renderer.material.color = new Color(255, 0, 0);
      D. renderer.material.color = Color(1, 0, 0);

      Solution

      1. Step 1: Check Unity color assignment syntax

        Unity uses predefined colors like Color.red or new Color(float r, float g, float b) with values between 0 and 1.
      2. Step 2: Evaluate each option

        renderer.material.color = Color.red; uses Color.red correctly. renderer.material.color = "red"; uses a string which is invalid. renderer.material.color = new Color(255, 0, 0); uses integers 255 which is incorrect for Color. renderer.material.color = Color(1, 0, 0); misses new keyword and uses wrong syntax.
      3. Final Answer:

        renderer.material.color = Color.red; -> Option A
      4. Quick Check:

        Use Color.red constant for red color [OK]
      Hint: Use Color.red constant, not strings or 255 values [OK]
      Common Mistakes:
      • Using string "red" instead of Color.red
      • Using 255 instead of 1 for color values
      • Missing 'new' keyword for Color constructor
      3. What will be the output color of the object after running this code?
      renderer.material.color = new Color(0.5f, 0.2f, 0.7f);
      medium
      A. Bright green
      B. Black
      C. Pure red
      D. A shade of purple

      Solution

      1. Step 1: Understand the Color constructor values

        The values represent red=0.5, green=0.2, blue=0.7 on a scale from 0 to 1.
      2. Step 2: Interpret the color mix

        Red and blue are medium to high, green is low, so the color will be a purple shade (mix of red and blue).
      3. Final Answer:

        A shade of purple -> Option D
      4. Quick Check:

        Color(0.5,0.2,0.7) = purple shade [OK]
      Hint: Red + Blue mix with low green = purple shade [OK]
      Common Mistakes:
      • Assuming values are 0-255 instead of 0-1
      • Confusing color channels order
      • Thinking low green means green color
      4. Identify the error in this Unity C# code snippet that tries to change material shininess:
      renderer.material.shininess = 0.8f;
      medium
      A. Material does not have a 'shininess' property directly accessible
      B. The value 0.8f is out of range
      C. Missing semicolon at the end
      D. Should use renderer.material.color instead

      Solution

      1. Step 1: Check if 'shininess' is a direct property

        Unity's standard material does not have a direct 'shininess' property; shininess is controlled via shader properties like '_Glossiness'.
      2. Step 2: Correct way to set shininess

        You must use renderer.material.SetFloat("_Glossiness", 0.8f); to change shininess.
      3. Final Answer:

        Material does not have a 'shininess' property directly accessible -> Option A
      4. Quick Check:

        Use SetFloat for shininess, no direct property [OK]
      Hint: Use SetFloat("_Glossiness", value) for shininess [OK]
      Common Mistakes:
      • Trying to access non-existent 'shininess' property
      • Confusing shininess with color
      • Ignoring shader property naming
      5. You want to change the texture of a material at runtime in Unity. Which code snippet correctly does this assuming you have a Texture variable named newTexture?
      hard
      A. renderer.material.SetColor("_MainTex", newTexture);
      B. renderer.material.color = newTexture;
      C. renderer.material.mainTexture = newTexture;
      D. renderer.material.texture = newTexture;

      Solution

      1. Step 1: Identify the correct property for texture

        The main texture of a material is accessed via mainTexture property.
      2. Step 2: Check each option's validity

        renderer.material.mainTexture = newTexture; correctly assigns newTexture to mainTexture. renderer.material.color = newTexture; wrongly assigns texture to color. renderer.material.SetColor("_MainTex", newTexture); uses SetColor with a texture which is invalid. renderer.material.texture = newTexture; uses a non-existent 'texture' property.
      3. Final Answer:

        renderer.material.mainTexture = newTexture; -> Option C
      4. Quick Check:

        Use mainTexture to set material texture [OK]
      Hint: Use mainTexture property to change textures [OK]
      Common Mistakes:
      • Assigning texture to color property
      • Using SetColor instead of SetTexture
      • Using wrong property name 'texture'
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard