如何在 gameObject 上做 "highlighting"

How to do "highlighting" on gameObject

我正在制作类似方块的游戏,现在我想在鼠标悬停在特定方块上时实现突出显示方块(游戏对象)。

我试过这样的方法(我不确定这是最好的方法,但这只是我想到的一种方法):

#pragma strict

public class BlockSelecting extends MonoBehaviour {


public var hovering : boolean = false;

public var xpos : float;
public var ypos : float;

function Start () {

}

function Update () {

}

function OnMouseExit () {
hovering = false;
}

function OnMouseOver () 
{     
        hovering = true;
        xpos = Input.mousePosition.x;
        ypos = Input.mousePosition.y;
}
function OnGUI ()
{
GUI.DrawTexture(new Rect(xpos, xpos, 26, 26), (Resources.Load("highlight") as Texture2D));
}
}

这不起作用,因为纹理没有显示鼠标指针的位置。有什么我看不到的东西或者这是错误的方法吗?我的高亮资源只是一个26x26(块是25x25)透明矩形的2D纹理,所以看起来它被高亮了...

P.S。我的计划是使用悬停布尔值来检查玩家是否仍在悬停,如果不是纹理应该是 deleted/hidden(关于如何做到这一点的任何想法?)。

假设您想将鼠标所在对象的颜色更改为红色 您应该使用 OnMouseEnter 检查鼠标是否在您的对象上,并使用 OnMouseExit 检查鼠标何时离开对象区域,我们将其颜色设置回更改之前的原始颜色

private color tempColor;
 void OnMouseEnter()
 {
     tempColor = renderer.material.color;
     renderer.material.color = Color.red;
 }
 void OnMouseExit()
 {
     renderer.material.color = tempColor;
 }