- Home /
Material Doesn't Have Color? / Vanishing Objects
Sorry for the same old problem but I've tried a few of the solutions given and I still have this issue:
Material doesn't have a color property ' Color' UnityEngine.Material:GetColor(String) LabelObject:OnMouseEnter() (at Assets/Code/LabelObject.js:33) UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)
I attached a jpg to each item I have so that I could see it. So when I play this script I do SEE the color I asked for and hover over it. But once I hover away from it the entire object turns BLACK and then if I click it AGAIN it plain old vanishes. No idea why that's happening. Can someone help?
I attached screenshot to help. 1. First - When I first move to hover over the object 2. Second - I navigate away from the object 3. Third - I come back, hover over the object, and navigate away again
Here is the code I have - but I also uploaded it if that helps
pragma strict
// Options for Mouseover text label
var textMeshPrefab: TextMesh; // we need a TextMesh (3d text object_ to instantiate internal var myLabel : TextMesh; // name of the instantiated text internal var myText : String = "Hello"; //text to be displayed
//Other visual feedback on Mouseover
var scaleChange: float = 0.5; var rotationSpeed: float = 120; var highlightColor : Vector4 = Vector4(1, .9, .8, 1) ;
//by finding the main camera, we can make the text always point at it //billboard effects internal var target: Transform; target = GameObject.Find("Main Camera").transform;
//Variables to keep track of old colo / old scale / orientation // ...so we can reset them when the mouseover ends var oldColor: Color; internal var oldOrientation : Vector3;
function OnMouseEnter () { // use Instantiate to make a new 3d Text object myLabel = Instantiate(textMeshPrefab, Vector3(transform.position.x+1,transform.position.y+1,transform.position.z+1), Quaternion.identity); myLabel.text = myText; //change the text of the message myLabel.transform.LookAt(target); //rotate the text to look at target myLabel.transform.Rotate( Vector3(0,180,0) );
gameObject.transform.localScale += Vector3(scaleChange,scaleChange,scaleChange);
oldColor = transform.GetComponent.<Renderer>().material.GetColor(" Color"); //change this
transform.GetComponent.<Renderer>().material.color = Vector4(1,.6,.6,1);
oldOrientation = transform.eulerAngles;
}
function OnMouseOver() { transform.Rotate( Vector3( 0, rotationSpeed*Time.deltaTime, 0 )); }
function OnMouseExit() { Destroy (myLabel);
gameObject.transform.localScale -= Vector3(scaleChange,scaleChange,scaleChange);
transform.GetComponent.<Renderer>().material.color= oldColor;
transform.eulerAngles = oldOrientation;
gameObject.transform.localScale -= Vector3(scaleChange,scaleChange,scaleChange);
transform.GetComponent.<Renderer>().material.color= oldColor;
transform.eulerAngles = oldOrientation;
}
function SetText( txt : String ){ myText = txt; }
Your answer
Follow this Question
Related Questions
Changing Material Color Via Script 1 Answer
Material doesn't have a color property '_Color' 4 Answers
Changing two different objects renderer colour 1 Answer
send csv colour values to multiple meshes 1 Answer
Lights colored like material 0 Answers