Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#/Unity中转换类型的问题_C#_Unity3d - Fatal编程技术网

C#/Unity中转换类型的问题

C#/Unity中转换类型的问题,c#,unity3d,C#,Unity3d,我正在做一个Unity项目,它有一个画布,上面有四个UI按钮对象。加载画布时,我希望脚本检查每个按钮,查看是否有相应的图像文件保存在本地驱动器中,如果有,则在按钮上显示该图像-这是通过GetPictureandShowIt()实现的,它适用于单个按钮 我遇到的问题是,在尝试循环使用每个不同的按钮时。下面的脚本成功地正确地循环了按钮名称(这些名称都已使用必要的标记设置),但我无法使用以下命令设置具有适当名称的按钮变量:button=getCount[ButtonNumber]因此GetPictur

我正在做一个Unity项目,它有一个画布,上面有四个UI按钮对象。加载画布时,我希望脚本检查每个按钮,查看是否有相应的图像文件保存在本地驱动器中,如果有,则在按钮上显示该图像-这是通过GetPictureandShowIt()实现的,它适用于单个按钮

我遇到的问题是,在尝试循环使用每个不同的按钮时。下面的脚本成功地正确地循环了按钮名称(这些名称都已使用必要的标记设置),但我无法使用以下命令设置具有适当名称的按钮变量:button=getCount[ButtonNumber]因此GetPictureandShowIt()方法无法将图像应用于“下一步”按钮。我遇到一个错误,无法将类型“UnityEngine.GameObject”隐式转换为“UnityEngine.UI.Button”

我在Unity/C#还是比较新的,所以如果这是一个直截了当的回答,我深表歉意

public class LoadImages : MonoBehaviour
{    
    public Button button;
    public FloatVariable FrameNumber;
    public StringVariable GalleryName;
        
    int ButtonNumber = 0;
    int ButtonMax;
    private GameObject[] getCount;

    void Start()
    {        
        getCount = GameObject.FindGameObjectsWithTag("Frame");
        ButtonMax = getCount.Length;         
        
        while (ButtonNumber <= ButtonMax)
        {
            button = getCount[ButtonNumber];
            GetPictureAndShowIt();
            Debug.Log("Frame#: " + getCount[ButtonNumber]);
            FrameNumber.value++;
            ButtonNumber++;
        }
   }
...
public类LoadImages:monobhavior
{    
公共按钮;
公共浮点数;
公共字符串变量GalleryName;
int ButtonNumber=0;
int按钮最大值;
私有游戏对象[]getCount;
void Start()
{        
getCount=GameObject.FindGameObjectsSwithTag(“帧”);
ButtonMax=getCount.Length;

使用
GameObject.FindGameObjectsWithTag(“Frame”);
时(按钮编号),您得到的是
GameObject
而不是
按钮类型。请检查

也许你需要:
button=getCount[ButtonNumber].GetComponent();
如果按钮组件在该游戏对象中。

如果
button
是一个
gameobject
,则可以使用
button=(button)getCount[ButtonNumber];
进行强制转换。或者将数组声明为
private button[]getCount;
以避免此问题。