对于需要频繁建立的一些重复物体,譬如子弹等,可以使用Prefab进行预先编辑,然后在脚本中实例化来进行动态创建 Prefab示例,建立一个球形prefab 1. 创建一个球形物体 命名:Ball,加入球形碰撞器和刚体属性。 2. 创建一个prefab 命名:BallPrefab ,将检视器中的Ball拖动到资源视图中的prefab:BallPrefab上, 这样预制件Prefab就编辑好了,需要使用的时候只需要在脚本中实例化就可以了, 脚本示例: 1 public int i; 2 public int j; 3 public Rigidbody BallPrefabs; 4 public float x, y, z; 5 public float k; 6 public int n; 7 8 public int count = 0; 9 10 private Rigidbody[] BP; 11 12 // Use this for initialization 13 void Start () { 14 BP=new Rigidbody[10]; 15 count = 0; 16 for (i = 0; i <= n; ++i) 17 { 18 for (int j = 0; j < i; ++j) 19 { 20 BP[count++] = (Rigidbody)Instantiate(BallPrefabs, new Vector3(x - 2.0F * k * i + 4 * j * k, 2.0F, z - 2 * 1.75F * k * i), BallPrefabs.rotation); 21 } 22 } 23 } 其中,这句就是实例化的脚本 BP[count++] = (Rigidbody)Instantiate(BallPrefabs, new Vector3(x - 2.0F * k * i + 4 * j * k, 2.0F, z - 2 * 1.75F * k * i), BallPrefabs.rotation); 之后将脚本挂载到主摄像机上设置好所有的参数就可以运行查看了: 效果: |
|