Unity,将onMouseEnter / onMouseExit改为另一个精灵

时间:2017-11-18 21:18:36

标签: c# unity3d

嗨,因为你可以说我对团结非常新。 我只想让一个精灵在鼠标进入或离开精灵时改变为另一个图像。例如,当鼠标悬停在播放按钮上时,它会变为稍微不同的彩色精灵。 感谢

这是我试过的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MouseOver : MonoBehaviour
{


public Sprite sprite1; // Drag your first sprite here
public Sprite sprite2; // Drag your second sprite here

private SpriteRenderer spriteRenderer;

void Start()
{
    spriteRenderer = GetComponent<SpriteRenderer>(); 
    if (spriteRenderer.sprite == null) 
        spriteRenderer.sprite = sprite1;
}



void OnMouseEnter()
{

    ChangeSprite();

}


void OnMouseExit()
{

    ChangeSprite();
}


void ChangeSprite()
{
    if (spriteRenderer.sprite == sprite1) 
    {
        spriteRenderer.sprite = sprite2;
    }
    else
    {
        spriteRenderer.sprite = sprite1; 
    }
 } 
}

2 个答案:

答案 0 :(得分:0)

您的精灵需要连接一个对撞机才能触发OnMouseEnter()事件。

答案 1 :(得分:0)

我更喜欢将UI Button与Image组件一起使用。它具有转换属性,您可以在不同的状态(正常,悬停,按下和禁用状态)上使用不同的精灵。

只需使用Button组件并将过渡模式设置为SpriteSwap:

Button Transition属性应如下所示:

由于默认按钮对象在子组件中具有设置为目标图形的图像,因此默认情况下可以将sprite1设置为图像源,并使用sprite2作为突出显示的Sprite。

如果不使用任何代码,这将完美地工作。

希望这会有所帮助:)