2015-02-07 4 views
0

저는 블록과 같은 게임을 만들고 있습니다. 특정 블록이 mouseOver 인 동안 강조 표시 블록 (gameobject)을 구현하고 싶습니다. 텍스처가 아니므로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. 내 계획은 hovering boolean을 사용하여 플레이어가 여전히 유혹하는지 확인합니다. 텍스처가 삭제되거나 숨겨져 있지 않으면 (이 작업을 수행하는 방법에 대한 아이디어가 있습니까?)

답변

2

마우스 그래서 당신은 마우스가 마우스가 객체 영역을 종료 할 때를 위해 개체 및 OnMouseExit에 있는지 확인하기 위해 OnMouseEnter를 사용해야 빨간색에 있는지 당신은 객체의 색상을 변경하려면 말할 수 그리고 우리는 it`을 설정 다시 변경하기 전의 원래 색으로 되돌아갑니다.

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

좋은 방법! 감사! –