牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2017-02-02 投稿人: 浏览次数:4728

在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个对应的墙壁 对象数组即可


具体请结合文章参看



那么该怎么创建呢

声明

    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也行)

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















声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。