Challenge 1: Material assignment
- Game Development course
- Intermediate
- Lesson 79/83
- 5 min
Write a script that assigns a material to a MeshRenderer from code.
MeshRenderer and Dynamic Material Assignment
To change the appearance of a 3D model through code, assign a new Material to the material property of the MeshRenderer component. This is frequently used at runtime when a character takes damage, gets a power-up, or changes color based on environmental conditions.
MeshRenderer renderer = GetComponent<MeshRenderer>();
renderer.material = newMaterial;Practice Material Change Task
Assign renderer.material = new Material("Kırmızı"); and print it with Debug.Log("Materyal: " + renderer.material.name);.
Starter code
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
// Materyal olustur, ata ve adini konsola yazdir
}
}Sample solution
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
renderer.material = new Material("Kırmızı");
Debug.Log("Materyal: " + renderer.material.name);
}
}Expected output
Materyal: Kırmızı
Practice Active Material Check
Check that the material exists with if (renderer.material != null) and print Debug.Log("Materyal aktif: " + renderer.material.name);.
Starter code
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material = new Material("Mavi");
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
// Null kontrolu yap ve aktif materyal adini yazdir
}
}Sample solution
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material = new Material("Mavi");
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
if (renderer.material != null)
{
Debug.Log("Materyal aktif: " + renderer.material.name);
}
}
}Expected output
Materyal aktif: Mavi
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 Which property is used in code to assign a new material to a MeshRenderer component on a GameObject at runtime?
- renderer.color
- renderer.sharedMesh
- renderer.material Correct answer
- renderer.transform
Explanation: Using the renderer.material property, the active material of the object is changed dynamically at runtime.
2 Assign Material
cizici.____ = altinMateryal;
cizici.material = altinMateryal;
Explanation: The material property is used to assign a material to a MeshRenderer component.
3 Material and Renderer Terminology
| Term | Meaning |
|---|---|
renderer.material |
Active material assigned at runtime |
MeshRenderer |
Renders geometry with material in scene |
Material |
Resource with surface color and texture |
material.color |
Main tint color value of the material |