我要制作一个可以改变游戏外观的系统。 每当我按下按钮时,都会尝试将皮肤样本图像更改为指定的图像(在检查器上),但是会出现错误。
“错误CS1061:'Sprite'不包含'sample'的定义,并且找不到可访问的扩展方法'sample'接受类型为'Sprite'的第一个参数(是否缺少using指令或程序集引用?)“
即使我首先将样本指定为Sprite,我也不知道为什么会出现此错误。 请帮助我。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Runtime.Versioning;
using UnityEngine;
using UnityEngine.UI;
[System.Serializable]
public class Samples
{
public Sprite sample;
}
[System.Serializable]
public class Changes
{
[TextArea]
public string changes;
}
[System.Serializable]
public class Skin
{
[TextArea]
public string name;
public string explain;
}
public class change_skin : MonoBehaviour
{
[SerializeField] private SpriteRenderer sprite_sample;
[SerializeField] private Text txt_changes;
[SerializeField] private Text txt_skin_name;
[SerializeField] private Text txt_skin_explain;
private int count = 0;
private int num = 0;
[SerializeField] private Changes[] change_thing;
[SerializeField] private Skin[] skins;
[SerializeField]
public Samples[] sample_image;
[Serializable]
public struct Samples
{
[SerializeField]
public Sprite[] sample_thing;
}
void Start()
{
sprite_sample.sprite = sample_image[count].sample_thing[num].**sample**;
txt_changes.text = change_thing[num].changes;
txt_skin_name.text = skins[count].name;
txt_skin_explain.text = skins[count].explain;
}
public void bt_changes_right()
{
if (num >= change_thing.Length)
{
num = 0;
}
num++;
txt_changes.text = change_thing[num].changes;
sprite_sample.sprite = sample_image[count].sample_thing[num].**sample**;
}
答案 0 :(得分:0)
sample_thing是一个Sprite,我想您正在尝试在Sprite对象中使用以下代码:
sprite_sample.sprite = sample_image[count].sample_thing[num].**sample**;
尝试停止sample_thing。像这样:
sprite_sample.sprite = sample_image[count].sample_thing[num];
看看如果从Start()和bt_changes_right()进行更改,会发生什么情况