【Unity&对象数组】如何创建一个长度不确定的对象数组以及使用方法&墙壁单元方块对象数组

来源:互联网 发布:淘宝卖家 人工服务电话 编辑:程序博客网 时间:2024/04/29 23:22

在Unity使用过程中,很多时候会用到长度不确定的 对象数组。

不确定的 对象数组 使用 声明部分 的代码就可以了。

但是,只要是数组,要把对象存放在对象数组里面,就必须知道 要存放 对象 的数量,也就是必须得知道 数组的长度


使用 list ,也是可以实现,本文不赘述

定义private List<Vector3> offsets = new List<Vector3>();

offsets.Add(transform.position); 从0开始依次添加对象

offsets.RemoveAt(0); 移除编号为0的对象


在代码 实际使用中,有很多情况 数组的长度 是动态变化的,根据不同条件,不同变量 不断的变化,以我的这个代码为例子


要动态创建4面墙壁,就必须得知道 这个对象 的长宽高, 以空物体 的Scale 的X,Y,Z,来代替空物体墙壁的长宽高


于是可得   组成 4面墙壁的 单位方块 的数量

        float length =0 ; float width = 0;        width = transform.localScale.z * transform.localScale.y;//(z+)        length = transform.localScale.x * transform.localScale.y;//(x+)

知道了后,再对 对应   以   墙壁 对象数组 的 对应墙壁的单位方块 数量     创建一个新的对象数组

        wallgo1 = new GameObject[(int)width];        wallgo3 = new GameObject[(int)width];        wallgo2 = new GameObject[(int)length];        wallgo4 = new GameObject[(int)length];
对每个对象 赋值 为空,否则 会报错(请以实际情况为主)

        for (int i = 0; i < width;i++)        {            wallgo1[i] = null; wallgo3[i] = null;        }//        for (int i = 0; i < length; i++)        {            wallgo2[i] = null; wallgo4[i] = null;        }//

然后就创建完毕,要调用一面墙壁的所有  单位方块,就 直接调用   这4个对应的墙壁 对象数组即可


具体请结合文章参看

【Unity&精灵】如何通过已知道的坐标获取物体&动态生成墙壁



那么该怎么创建呢

声明

    private GameObject[] wallgo1 = null;//墙壁数组 wallgo1    private GameObject[] wallgo2 = null;    private GameObject[] wallgo3 = null;    private GameObject[] wallgo4 = null;


赋值

 void WallGoArray()    {        float length =0 ; float width = 0;        width = transform.localScale.z * transform.localScale.y;//(z+)        length = transform.localScale.x * transform.localScale.y;//(x+)        wallgo1 = new GameObject[(int)width];        wallgo3 = new GameObject[(int)width];        wallgo2 = new GameObject[(int)length];        wallgo4 = new GameObject[(int)length];        for (int i = 0; i < width;i++)        {            wallgo1[i] = null; wallgo3[i] = null;        }//        for (int i = 0; i < length; i++)        {            wallgo2[i] = null; wallgo4[i] = null;        }//    }//


调用

只有当 对象数组有 对象,且有一定的长度的时候,对象数组 才能够被 调用。

在其他的函数里面可以调用 这 4 个对象 数组了。(一定要注意,这4个对象数组,先声明,后赋值,规定长度,并对 长度 内的每个 对象赋值,就算是 null也行)

以上就是 创建一个长度不确定的对象数组的用法。















0 0
原创粉丝点击