在 Unity 中更改 mouseEnter 上的精灵帧

Changing sprite frame on mouseEnter in Unity

我有一个名为播放按钮的资产文件,带有 texture type=sprite2DSprite Mode = Multiple,它包含 2 个不同的帧:play-button0play-button1

我已经使用以下代码附加了此资产的 c# 脚本文件:

using UnityEngine;
using System.Collections;

public class Play_btn : MonoBehaviour {

    SpriteRenderer spriteRenderer;
    Sprite s1;
    Sprite s2;
    // Use this for initialization
    void Start () {
        spriteRenderer = GetComponent<SpriteRenderer>();
        if (spriteRenderer.sprite == null)
                        spriteRenderer.sprite = s1;
    }
    void OnMouseDown() {
        Application.LoadLevel("Levels");
    }
    void OnMouseEnter() {
        spriteRenderer.sprite = s2;
    }
    void OnMouseExit() {
        //spriteRenderer.sprite = sprite1;
    }
    // Update is called once per frame
    void Update () {

    }
}

如您所见,我正在尝试更改框架 onMouseEnterOnMouseExit 但是当 mouseEnter 播放按钮时出现空引用错误并显示空白对象在屏幕上,任何人都可以帮助我解决这个问题吗?

据我所知,Sprites s1 和 s2 不是 public(因此您无法通过检查器分配它),并且没有分配 s1 和 s2 变量的代码。

解决方案
制作 Sprites s1 和 s2 public,并分配它们。