Change the material color of an Object in Unity 3D

Hello programmers, In this article, I will show how to change the material color of an Object in Unity 3D.

Lets’s get started with the building process.

Step 1: Create a 3D Object

First, create a 3D Object. You can do this by right-clicking in Hierarchy, and selecting 3D Object > Sphere.

Game Object successfully created.

Step 2: Create a Material

Now create a material by right-clicking in the Assets window, and selecting Create > Material.

Now Material is successfully created.

Step 3: Drag and Drop the material

Now, drag and drop the material from the Assets window to the Sphere at Hierarchy.

Step 4: Create a button

Create a button by right-clicking in the Hierarchy window, and selecting UI > Button-TextMeshPro.

Adjust your button accordingly to your game.

Step 5: Create C# Script

Now create a C# script by right-clicking in the Assets window, and selecting Create > C# Script.

After creating the C# script, name it as ChangeColor, and write down the code below.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeColor : MonoBehaviour
{
    public Renderer sphereRenderer;
    public GameObject sphere;

    [SerializeField] private Color newColor;
    [SerializeField] private Color[] colors;
    private int colorValue;
    // Start is called before the first frame update
    void Start()
    {
        sphereRenderer = sphere.GetComponent<Renderer>();
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void ChangeMaterial()
    {
        newColor = Random.ColorHSV();

        sphereRenderer.material.color = newColor;

    }
}

Step 6: Add the C# script

Add the ChangeColor script to the Button. Now go to the Inspector window, select Button > On Click () > +.

In On Click ()

  • Select Object > Scene > Button.

  • Function > ChangeColor > ChangeMaterial() .

Now run the program.

Output:

Leave a Reply

Your email address will not be published. Required fields are marked *