鼠标悬停时更改精灵
Change sprite on mouseover
我有一个 sprite 充当我游戏主菜单中的按钮。它有一个盒子碰撞器,我使用 OnMouseDown()
来记录按钮的点击。
我想在我的鼠标滑过按钮时改变 sprite。我知道我可以使用函数 OnMouseOver()
做一些事情,但我如何在 2 个精灵之间完全切换?
将鼠标功能放在一个空的父级 GameObject
上,并将其作为您想要的所有精灵的父级,然后通过父级 enable/disable 它们
其他选项:
- 改用世界空间 UI 按钮(然后您可以使用内置的 spriteswap 转换和其他按钮方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html)
- 添加 public Sprite 变量并将鼠标悬停精灵分配给它,然后在 OnMouseOver() 中在您的按钮精灵中使用该精灵图像。 (并在鼠标移出时恢复为原始精灵)
- 也可以使用 Mecanim 动画,OnMouseOver() 切换到另一个动画(只有 1 帧)
您不需要使用两个精灵并在它们之间切换。只需使用像这样的效果:
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 sprite;
Sprite highlightSprite;
void OnMouseOver()
{
transform.GetComponent<SpriteRenderer>().sprite = highlightSprite;
}
void OnMouseExit()
{
transform.GetComponent<SpriteRenderer>().sprite = sprite;
}
并在 OnMouseExit
中改回。
我有一个 sprite 充当我游戏主菜单中的按钮。它有一个盒子碰撞器,我使用 OnMouseDown()
来记录按钮的点击。
我想在我的鼠标滑过按钮时改变 sprite。我知道我可以使用函数 OnMouseOver()
做一些事情,但我如何在 2 个精灵之间完全切换?
将鼠标功能放在一个空的父级 GameObject
上,并将其作为您想要的所有精灵的父级,然后通过父级 enable/disable 它们
其他选项:
- 改用世界空间 UI 按钮(然后您可以使用内置的 spriteswap 转换和其他按钮方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html)
- 添加 public Sprite 变量并将鼠标悬停精灵分配给它,然后在 OnMouseOver() 中在您的按钮精灵中使用该精灵图像。 (并在鼠标移出时恢复为原始精灵)
- 也可以使用 Mecanim 动画,OnMouseOver() 切换到另一个动画(只有 1 帧)
您不需要使用两个精灵并在它们之间切换。只需使用像这样的效果:
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 sprite;
Sprite highlightSprite;
void OnMouseOver()
{
transform.GetComponent<SpriteRenderer>().sprite = highlightSprite;
}
void OnMouseExit()
{
transform.GetComponent<SpriteRenderer>().sprite = sprite;
}
并在 OnMouseExit
中改回。