Hi, I’ve been working whole day on that scrtipt, and I don’t know what is wrong with it!!!
Please help someone
using UnityEngine;
using System.Collections;
//Script which highlight object when mouse is over it and show box with text
public class highlit : MonoBehaviour {
float holdTime = 0.5f;
Camera activeCamera;
Rect buttonRect;
bool showGUI = false;
float fade = 0.0f;
string myText = "Hover Text";
float GUISizeX = 200;
float GUISizeY = 90;
private float timer = 0.0f;
private Color originalColor;
float highlightMultiply = 1.50f;
void Start (){
originalColor = renderer.material.color;
}
//when mouse is over object highliht and draw box.
void OnMouseOver (){
if (!Application.isPlaying)
return;
timer += Time.deltaTime;
if(timer >=0.25f)
{
buttonPosn = activeCamera.WorldToScreenPoint(gameObject.transform.position);
buttonRect = new Rect(buttonPosn.x, buttonPosn.y, GUISizeX, GUISizeY);
showGUI = true;
timer = 0.0f;
}
if((timer != 0) )
{
renderer.material.color.r = originalColor.r*highlightMultiply;
renderer.material.color.g = originalColor.g*highlightMultiply;
renderer.material.color.b = originalColor.b*highlightMultiply;
renderer.material.color.b = renderer.material.color.b*highlightMultiply;
}
}
// Mousebuton click
void OnMouseDown (){
if (!Application.isPlaying)
return;
Application.OpenURL("http://google.com");
}
IEnumerator OnMouseExit (){
if (!Application.isPlaying)
return;
showGUI = false;
timer = 0.0f;
yield return new WaitForSeconds(0.1f);
renderer.material.color.r = originalColor.r*highlightMultiply;
renderer.material.color.g = originalColor.g*highlightMultiply;
renderer.material.color.b = originalColor.b*highlightMultiply;
renderer.material.color.b = renderer.material.color.b/highlightMultiply;
renderer.material.color = originalColor;
}
void OnGUI (){
Color saveColor= GUI.color;
if(showGUI) {
saveColor= GUI.color;
GUI.color.a = fade;
GUI.Box (buttonRect, myText);
GUI.color = saveColor;
FadeIn();
}
else {
saveColor= GUI.color;
GUI.color.a = fade;
GUI.Box (buttonRect, myText);
GUI.color = saveColor;
FadeOut();
}
}
IEnumerator FadeIn (){
while(fade < 1.0f) {
fade += Time.deltaTime / 2;
yield return 0;
}
fade = 1;
}
IEnumerable FadeOut (){
while(fade > 0.0f) {
fade -= Time.deltaTime / 2;
yield return 0;
}
fade = 0;
}
}