Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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#_Oop_Unity3d - Fatal编程技术网

C# 在运行时在Unity中创建类实例

C# 在运行时在Unity中创建类实例,c#,oop,unity3d,C#,Oop,Unity3d,我想在循环中创建X个对象,访问并设置新创建对象的属性。我对传递的刚体使用了实例化方法,如教程中所示,但我需要访问连接到对象的脚本的属性,而不仅仅是它的刚体 以下是我正在尝试的方法: public void makeGrid(int w = 10, int h = 10) { gridWidth = w; gridHeight = h; int tileArrayLength = gridWidth * gridHeight; tileArray = new Ti

我想在循环中创建X个对象,访问并设置新创建对象的属性。我对传递的刚体使用了
实例化
方法,如教程中所示,但我需要访问连接到对象的脚本的属性,而不仅仅是它的刚体

以下是我正在尝试的方法:

public void makeGrid(int w = 10, int h = 10)
{
    gridWidth = w;
    gridHeight = h;

    int tileArrayLength = gridWidth * gridHeight;
    tileArray = new Tile[tileArrayLength];

    for (int i = 0; i < gridWidth; i++)
    {
        for (int j = 0; j < gridHeight; j++)
        {
            // add tiles
            Tile t = new Tile(); // !!! doesn't work >_<
            t.posX = i;
            t.posY = j;
            t.id = j + 10 * i;

            tileArray[t.id] = t;
        }
    }

}
publicsvoidmakegrid(intw=10,inth=10)
{
网格宽度=w;
网格高度=h;
int tileraraylength=网格宽度*网格高度;
TilerRay=新瓷砖[TilerRayLength];
对于(int i=0;i_<
t、 posX=i;
t、 posY=j;
t、 id=j+10*i;
tileraray[t.id]=t;
}
}
}
我想在循环中创建X个对象,访问并设置 新创建的对象

您可以通过编辑器创建预置,然后实例化它们,或者明确创建一个
游戏对象
,并将所需的组件附加到其中:

GameObject prefabInstance = GameObject.Instantiate(Resource.Load("path_to_prefab")) as GameObject;

GameObject instanceThroughReference = GameObject.Instantiate(aReferenceToAnInstantiableObject) as GameObject;

GameObject emptyGameObject= new GameObject("empty game object");
关于什么问题:

我使用了实例化方法和传递的刚体,如图所示 在教程中,但我需要访问脚本的属性 连接到对象,而不仅仅是它的刚体

对于属性,我认为您是指附加到
游戏对象
实例化的
组件。
如果您从引用或加载中实例化对象,如果原始游戏对象具有要附加到其上的组件,则可以使用方法检索它们,或者捕获AddComponent的返回值

如果你正在创建一个空的
游戏对象
,你必须明确地附加你需要的
组件

GameObject go = new GameObject("foo");
Bar bar = go.AddComponent<Bar>(); //where Bar extends MonoBehavior
GameObject go=newgameobject(“foo”);
Bar=go.AddComponent()//其中,条扩展了单一行为