2015-10-23 252 views
0

我有一个精灵,充当我游戏主菜单中的按钮。它有一个箱子对撞机,我用OnMouseDown()来注册按钮的点击。在mouseover上更改精灵

我想让鼠标在按钮上滚动时发生变化。我知道我可以使用功能OnMouseOver()做些什么,但是如何完全切换2个精灵?

回答

2

你并不需要使用2个精灵和在它们之间切换。只需使用这样的效果

void OnMouseOver 
{ 
    transform.GetComponent<SpriteRenderer>().sprite.color = "your new color for clicking effect"; 

    transform.GetComponent<SpriteRenderer>().sprite.localScale -= new Vector3(0.1f, 0.1f, 0.1f); 
} 

并返回OnMouseExit中的所有这些过程。或者如果你仍然想改变精灵,你可以改变它像

Sprite newSprite; 

void OnMouseOver 
{ 
    transform.GetComponent<SpriteRenderer>().sprite = newSprite; 
} 

并改变回OnMouseExit。

+1

这很好。然而,如果你有一个蓝色的精灵,你说,Photoshop中创建? 'sprite.color'会不会改变精灵的颜色? – Tom

+1

它会改变,但是当您将颜色设置为红色时,它会变成蓝色+红色,我认为。没有变成你设定的颜色。 – Cenkisabi

1

把鼠标功能集成到一个空父GameObject和父它所有你想要的,那么就启用/通过父禁用它们

1

其他选项的精灵:

  • 使用世界空间UI按钮代替(然后你可以使用内置的spriteswap过渡和其他按钮方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html
  • 添加公共雪碧变量和分配的鼠标悬停精灵,然后在OnMouseOver()使用该精灵图像在你的按钮精灵。 (并恢复到原来的精灵鼠标出)
  • 也可以使用Mecanim动画的onmouseover()切换到另一个动画(其中只有1帧)