如何更改Unity图像组件的源图像?

问题描述

我不知道如何更改用于源图像的精灵。

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

public class SceneButton : MonoBehavIoUr
{
    public Sprite ButtonOff;
    public Sprite ButtonOn;

    private void OnMouseDown()
    {
        gameobject.GetComponent<Image>().sprite = ButtonOn;
    }
}

当我输入时,它返回: Assets \ Scripts \ SceneButton.cs(13,31):错误CS1061:“图像”不包含“ sprite”的定义,找不到可以接受的扩展方法“ sprite”接受类型为“ Image”的第一个参数您缺少using指令或程序集引用吗?)

我见过很多帖子,人们在图像组件上使用.sprite,所以我不确定为什么我不能

解决方法

我认为您应该使用UnityEngine.UI添加;命名空间。如果不起作用,则尝试使用以下公共功能:-

public GameObject soundButton;
public sprite soundOn;
public sprite soundOff;
public void ChangeSprite()
{
    // getting Image component of soundButton and changing it
    soundButton.GetComponent<Image>().sprite = soundOn;
}

然后从统一的onclick调用它 也许对你有用