首页 文章

在鼠标悬停时更改精灵

提问于
浏览
0

我有一个精灵作为我游戏主菜单中的一个按钮 . 它有一个盒子对撞机,我使用 OnMouseDown() 来记录按钮的点击 .

当我的鼠标滚过按钮时,我想更改精灵 . 我知道我可以使用 OnMouseOver() 函数来做东西但是如何在2个精灵之间完全切换?

3 回答

  • 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

    将鼠标函数放到空父 GameObject 上,并将其父级给所需的所有精灵,然后通过父级启用/禁用它们

  • 1

    其他选择:

    • 使用世界空间UI按钮(然后您可以使用内置的spriteswap转换和其他按钮方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html

    • 添加公共Sprite变量并为其指定鼠标悬停精灵,然后在OnMouseOver()中使用按钮精灵中的精灵图像 . (并在鼠标输出时恢复原始精灵)

    • 还可以使用Mecanim动画,OnMouseOver()切换到另一个动画(只有1帧)

相关问题