unity指令碼中執行時例項化一個prefab
阿新 • • 發佈:2019-02-04
在unity中例項化一個prefab 比例項化一個物體省程式碼,而且更方便靈活
- 例項化一個object並建立:
void Start() {
for (int y = 0; y < 5; y++) {
for (int x = 0; x < 5; x++) {
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.AddComponent<Rigidbody>();
cube.transform.position = new Vector3(x, y, 0);
}
}
}
- 例項化一個prefab,需提前建立好一個cube,加元件Rigidbody,建立prefab,並把該cube拖到prefab上,程式碼只需要兩句:
void Start() {
for (int y = 0; y < 5; y++) {
for (int x = 0; x < 5; x++) {
Instantiate(brick, new Vector3(x, y, 0), Quaternion.identity);
}
}
}
- 而且修改prefab時,不需要修改程式碼,靈活性好。
增加大量固定格式的物體,用例項化prefab的方法也更方便
public GameObject prefab;
public int numberOfObjects = 20;
public float radius = 5f;
void Start() {
for (int i = 0; i < numberOfObjects; i++) {
float angle = i * Mathf.PI * 2 / numberOfObjects;
Vector3 pos = new Vector3(Mathf.Cos(angle), 0 , Mathf.Sin(angle)) * radius;
Instantiate(prefab, pos, Quaternion.identity);
}
}