我有一个精灵作为我游戏主菜单中的一个按钮 . 它有一个盒子对撞机,我使用 OnMouseDown() 来记录按钮的点击 .
OnMouseDown()
当我的鼠标滚过按钮时,我想更改精灵 . 我知道我可以使用 OnMouseOver() 函数来做东西但是如何在2个精灵之间完全切换?
OnMouseOver()
您不需要使用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中更改 .
将鼠标函数放到空父 GameObject 上,并将其父级给所需的所有精灵,然后通过父级启用/禁用它们
GameObject
其他选择:
使用世界空间UI按钮(然后您可以使用内置的spriteswap转换和其他按钮方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html)
添加公共Sprite变量并为其指定鼠标悬停精灵,然后在OnMouseOver()中使用按钮精灵中的精灵图像 . (并在鼠标输出时恢复原始精灵)
还可以使用Mecanim动画,OnMouseOver()切换到另一个动画(只有1帧)
3 回答
您不需要使用2个精灵并在它们之间切换 . 只需使用这样的效果
并在OnMouseExit中取回所有这些进程 . 或者如果您仍想更改精灵,您可以更改它
并在OnMouseExit中更改 .
将鼠标函数放到空父
GameObject
上,并将其父级给所需的所有精灵,然后通过父级启用/禁用它们其他选择:
使用世界空间UI按钮(然后您可以使用内置的spriteswap转换和其他按钮方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html)
添加公共Sprite变量并为其指定鼠标悬停精灵,然后在OnMouseOver()中使用按钮精灵中的精灵图像 . (并在鼠标输出时恢复原始精灵)
还可以使用Mecanim动画,OnMouseOver()切换到另一个动画(只有1帧)