Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 在鼠标上方更改精灵_Unity3d_Sprite_Gameobject - Fatal编程技术网

Unity3d 在鼠标上方更改精灵

Unity3d 在鼠标上方更改精灵,unity3d,sprite,gameobject,Unity3d,Sprite,Gameobject,我有一个精灵,在我的游戏主菜单中充当一个按钮。它有一个盒子碰撞器,我使用OnMouseDown()来注册按钮的点击 当我的鼠标滚动到按钮上时,我想改变精灵。我知道我可以使用函数OnMouseOver()做一些事情,但是我如何在两个精灵之间完全切换呢?将鼠标功能放在一个空的父对象GameObject,并将其作为您想要的所有精灵的父对象,然后只需通过父对象启用/禁用它们,将鼠标功能放到空的父对象上,并将其设置为所需的所有精灵的父对象,然后只需通过父对象启用/禁用它们其他选项: 改用worldspa

我有一个精灵,在我的游戏主菜单中充当一个按钮。它有一个盒子碰撞器,我使用
OnMouseDown()
来注册按钮的点击


当我的鼠标滚动到按钮上时,我想改变精灵。我知道我可以使用函数
OnMouseOver()
做一些事情,但是我如何在两个精灵之间完全切换呢?

将鼠标功能放在一个空的父对象
GameObject
,并将其作为您想要的所有精灵的父对象,然后只需通过父对象启用/禁用它们,将鼠标功能放到空的父对象上,并将其设置为所需的所有精灵的父对象,然后只需通过父对象启用/禁用它们

其他选项:

  • 改用worldspace UI按钮(然后可以使用内置的spriteswap转换和其他按钮方法:)
  • 添加公共Sprite变量并将mouseover Sprite指定给该变量,然后在OnMouseOver()中,在按钮Sprite中使用该Sprite图像。(并在鼠标离开时恢复为原始精灵)
  • 也可以使用Mecanim动画,OnMouseOver()切换到另一个动画(只有1帧)
其他选项:

  • 改用worldspace UI按钮(然后可以使用内置的spriteswap转换和其他按钮方法:)
  • 添加公共Sprite变量并将mouseover Sprite指定给该变量,然后在OnMouseOver()中,在按钮Sprite中使用该Sprite图像。(并在鼠标离开时恢复为原始精灵)
  • 也可以使用Mecanim动画,OnMouseOver()切换到另一个动画(只有1帧)

    • 您不需要使用两个精灵并在它们之间切换。只需使用如下效果:

      void OnMouseOver()
      {
      transform.GetComponent().sprite.color=“单击效果的新颜色”;
      transform.GetComponent().sprite.localScale-=新向量3(0.1f、0.1f、0.1f);
      }
      
      并在
      OnMouseExit
      中返回所有此过程。或者,如果仍要更改sprite,可以按如下方式进行更改:

      Sprite-Sprite;
      雪碧强光雪碧;
      void OnMouseOver()
      {
      transform.GetComponent().sprite=highlightSprite;
      }
      void OnMouseExit()
      {
      transform.GetComponent().sprite=sprite;
      }
      

      然后在
      OnMouseExit

      中返回,您不需要使用两个精灵并在它们之间切换。只需使用如下效果:

      void OnMouseOver()
      {
      transform.GetComponent().sprite.color=“单击效果的新颜色”;
      transform.GetComponent().sprite.localScale-=新向量3(0.1f、0.1f、0.1f);
      }
      
      并在
      OnMouseExit
      中返回所有此过程。或者,如果仍要更改sprite,可以按如下方式进行更改:

      Sprite-Sprite;
      雪碧强光雪碧;
      void OnMouseOver()
      {
      transform.GetComponent().sprite=highlightSprite;
      }
      void OnMouseExit()
      {
      transform.GetComponent().sprite=sprite;
      }
      

      然后在
      OnMouseExit

      中进行更改,这样效果很好。然而,如果你有一个蓝色的精灵,你在photoshop中创建的呢?
      sprite.color
      还会更改sprite的颜色吗?它会更改,但也就是说,当您将颜色设置为红色时,我想它会变成蓝色+红色。不是你设定的颜色。这个效果很好。然而,如果你有一个蓝色的精灵,你在photoshop中创建的呢?
      sprite.color
      还会更改sprite的颜色吗?它会更改,但也就是说,当您将颜色设置为红色时,我想它会变成蓝色+红色。不是你设定的颜色。