在 Unity 中更改 mouseEnter 上的精灵帧
Changing sprite frame on mouseEnter in Unity
我有一个名为播放按钮的资产文件,带有 texture type=sprite2D
和 Sprite Mode = Multiple
,它包含 2 个不同的帧:play-button0
和 play-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 () {
}
}
如您所见,我正在尝试更改框架 onMouseEnter
和 OnMouseExit
但是当 mouseEnter
播放按钮时出现空引用错误并显示空白对象在屏幕上,任何人都可以帮助我解决这个问题吗?
据我所知,Sprites s1 和 s2 不是 public(因此您无法通过检查器分配它),并且没有分配 s1 和 s2 变量的代码。
解决方案
制作 Sprites s1 和 s2 public,并分配它们。
我有一个名为播放按钮的资产文件,带有 texture type=sprite2D
和 Sprite Mode = Multiple
,它包含 2 个不同的帧:play-button0
和 play-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 () {
}
}
如您所见,我正在尝试更改框架 onMouseEnter
和 OnMouseExit
但是当 mouseEnter
播放按钮时出现空引用错误并显示空白对象在屏幕上,任何人都可以帮助我解决这个问题吗?
据我所知,Sprites s1 和 s2 不是 public(因此您无法通过检查器分配它),并且没有分配 s1 和 s2 变量的代码。
解决方案
制作 Sprites s1 和 s2 public,并分配它们。