Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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#统一)_C#_Android_Unity3d - Fatal编程技术网

实例化的对象与控制台的输出不同。(C#统一)

实例化的对象与控制台的输出不同。(C#统一),c#,android,unity3d,C#,Android,Unity3d,正如您在控制台上的上图中所看到的,前3个输出为蓝色,但我实例化的prefact上的前5个不同 都是蓝色的预制的 以下是我目前的代码: for(int col = 0; col < table.GetLength(0); col++){ GameObject p = Instantiate(prefab_bigeye_gameobject) as GameObject; p.transform.SetParent (pos_big_eye_road);

正如您在控制台上的上图中所看到的,前3个输出为
蓝色
,但我实例化的prefact上的前5个不同

都是
蓝色的
预制的

以下是我目前的代码:

for(int col = 0; col < table.GetLength(0); col++){

        GameObject p = Instantiate(prefab_bigeye_gameobject) as GameObject;
        p.transform.SetParent (pos_big_eye_road);
        p.transform.localScale = Vector3.one;

        img = (RawImage)p.GetComponent<RawImage> ();
        for(int row = 0; row < table.GetLength(1); row++){
            if(table[moveCol, moveRow] == null){
                col0 = table[colIndex1, row];
                col1 = table[colIndex2, row];

                if(col0 != null)
                {
                    sum1+=1;
                }

                if(col1 != null)
                {
                    sum2+=1;
                }
                counter++;
            }
            else
            {
                if(counter == 0){
                    data1 = table[firstTableCol,firstTableRow];
                    data2 = table[secondTableCol,secondTableRow];
                    data3 = table[thirdTableCol,thirdTableRow];
                    data4 = table[fourthTableCol,fourthTableRow];
                }
                else{

                    if(moveRow > 1){
                        firstTableRow++;
                        secondTableRow++;
                        thirdTableRow++;
                        fourthTableRow++;
                    }else{
                        firstTableCol++;
                        secondTableCol++;
                        thirdTableCol++;
                        fourthTableCol++;
                    }
                    data1 = table[firstTableCol,firstTableRow];
                    data2 = table[secondTableCol,secondTableRow];
                    data3 = table[thirdTableCol,thirdTableRow];
                    data4 = table[fourthTableCol,fourthTableRow];

                }
                if(data1 != null && data2 != null && data3 != null && data4 != null)
                {

                    img.texture = NewTexture[1];
                    p.SetActive(true);
                    redcounter++;
                    print("RED ARE NOW AT:" + redcounter);
                }
                else
                {
                    img.texture = NewTexture[0];
                    p.SetActive(true);
                    bluecounter++;
                    print("BLUE ARE NOW AT:" + bluecounter);
                }

                if(moveRow + 1 < table.GetLength(1)){
                    moveRow++;
                }
            }
        }

        if(sum1 == sum2)
        {
            img.texture = NewTexture[1];
            p.SetActive(true);
            redcounter++;
            print("RED ARE NOW AT:" + redcounter);
        }
        else
        {
            img.texture = NewTexture[0];
            p.SetActive(true);
            bluecounter++;
            print("BLUE ARE NOW AT:" + bluecounter);
        }
        //reset
        sum1 = 0;
        sum2 = 0;

        if(colIndex1 + 1 < table.GetLength(0) && colIndex2 + 1 < table.GetLength(0))
        {
            colIndex1++;
            colIndex2++;
        }
        else
        {
            //nothing to do
        }

        if(moveCol + 1 < table.GetLength(0))
        {
            moveCol+=1;
        }
        if(moveRow + 1 < table.GetLength(1)){
            moveRow = 1;
        }
    }
for(int col=0;col1){
firstTableRow++;
secondTableRow++;
thirdTableRow++;
第四行++;
}否则{
firstTableCol++;
secondTableCol++;
thirdTableCol++;
fourthTableCol++;
}
data1=表[firstTableCol,firstTableRow];
data2=表[secondTableCol,secondTableRow];
数据3=表[thirdTableCol,thirdTableRow];
数据4=表格[fourthTableCol,fourthTableRow];
}
if(data1!=null&&data2!=null&&data3!=null&&data4!=null)
{
img.texture=NewTexture[1];
p、 SetActive(真);
redcounter++;
打印(“红色现在位于:“+redcounter”);
}
其他的
{
img.texture=NewTexture[0];
p、 SetActive(真);
bluecounter++;
打印(“蓝色现在位于:“+蓝色计数器”);
}
if(moveRow+1
预期输出必须为

蓝色,蓝色,蓝色,红色,蓝色

但在我的输出上是这样的


BLUE,BLUE,BLUE,BLUE,BLUE

我不知道为什么直接在for循环中实例化它会让它变得疯狂,所以我所做的就是通过创建一个函数来分离它们

void blueBead(){
    p = Instantiate(prefab_bigeye_gameobject) as GameObject;
    p.transform.SetParent (pos_big_eye_road);
    p.transform.localScale = Vector3.one;

    img2 = (RawImage)p.GetComponent<RawImage>();

    img2.texture = NewTexture[0];
    p.SetActive(true);
}

void redBead(){
    p = Instantiate(prefab_bigeye_gameobject) as GameObject;
    p.transform.SetParent (pos_big_eye_road);
    p.transform.localScale = Vector3.one;

    img2 = (RawImage)p.GetComponent<RawImage>();

    img2.texture = NewTexture[1];
    p.SetActive(true);
}

这些对象在编辑器中的显示顺序不一定与实例化顺序相同
if(data1 != null && data2 != null && data3 != null && data4 != null)
{

    readBead();
}
else
{
    blueBead();
}