- Home /
GameObject color not changing
I've set up the following script to instantiate a grid of GameObjects over a plane. Raycasts are then called from the mouse position to get the GameObject that the mouse is over. I'm trying to highlight the GameObject by changing the material color to yellow, but nothing changes when I mouse over a tile.
I've traced through the code and if(currentGridPiece.layer == 10) is definitely returning true, so I'm led to believe that the material code is to blame. I'm not sure if I've just set up the GameObject incorrectly or if I'm missing something else.
Help would be appreciated, thanks!
Screenshot of individual GameObject:
http://i.imgur.com/7Ktgny6.png
Code:
using UnityEngine;
using System.Collections;
public class Grid : MonoBehaviour {
const int height = 100;
const int width = 100;
public GameObject [,] grid = new GameObject[width,height];
public GameObject gridPiece;
private GameObject currentGridPiece;
void Start () {
//
}
//Spawn a grid of empty game objects when game starts
void Awake () {
for (int x = 0; x < width; x++) {
for (int z = 0; z < height; z++) {
GameObject grid = (GameObject)Instantiate(gridPiece);
grid.transform.position = new Vector3(gridPiece.transform.position.x - x, 0, gridPiece.transform.position.z + z);
grid.transform.parent = gameObject.transform;
}
}
}
void Update () {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit)){
GameObject currentGridPiece = hit.transform.gameObject;
if(currentGridPiece.layer == 10){
Debug.Log ("Hit object!");
currentGridPiece.renderer.material.color = Color.red;
}
}
}
}
According to your image, you don't have any material linked to the render component. Have you tried assigned a default Diffuse $$anonymous$$aterial to it?. How about using Shared$$anonymous$$aterial ins$$anonymous$$d of $$anonymous$$aterial?. Just be aware about the difference between modifying $$anonymous$$aterial and Shared material:
$$anonymous$$aterial: http://docs.unity3d.com/ScriptReference/Renderer-material.html
Shared $$anonymous$$aterial: http://docs.unity3d.com/ScriptReference/Renderer-shared$$anonymous$$aterial.html
Regards