鼠标悬停时更改精灵

时间:2014-07-10 06:16:12

标签: c# unity3d unityscript

在我想要的脚本代码中添加更改其精灵的可能性。所以玩家鼠标悬停在精灵上,它会变成已经添加到项目中的另一个精灵。你能给我一个示例代码吗?

var newSprite : Sprite;
function Start () {
print(gameObject.name);
}
void OnMouseEnter() 
{
 print("hii  detected");
 //targetGui.texture = hoverTex;
 GetComponent(SpriteRenderer).sprite = newSprite;          
}

 void OnMouseExit() 

{

 }

1 个答案:

答案 0 :(得分:2)

你可以将两个精灵都作为游戏对象。然后禁用newSprite对象的Sprite Renderer并将脚本附加到当前Sprite(第一个sprite)。

public GameObject newSprite;
private Vector3 currentSpritePosition;

void OnMouseEnter(){
  //getting the current position of the current sprite if ever it can move;
  currentSpritePosition = transform.position;

  //then make it invisible
  renderer.enabled = false;

  //give the new sprite the position of the latter
  newSprite.transform.position = currentSpritePosition;

  //then make it visible
  newSprite.renderer.enabled = true;
}

void OnMouseExit(){
  //just the reverse process
  renderer.enabled = true;
  newSprite.renderer.enabled = false;
}

您也可以在开始时按如下方式进行处理:

void Start(){
  newSprite.renderer.enabled = false;
}

编辑:您应该为当前精灵添加一个碰撞器,以使OnMouseOverOnMouseExit正常工作。