zoukankan      html  css  js  c++  java
  • Unity

    项目描述:每帧实例化一个随机颜色的物体(Cube),坐标在某范围内随机;且物体每帧都会缩小,当缩小到一定的尺寸时,就销毁物体

    代码描述:

    public class CubeSpawner : MonoBehaviour
    {
    
        public GameObject cubePrefabVar;    //实例化物体原型
        public List<GameObject> gameObjectList; //生成物体的表
        public float scalingFactor = 0.95f;     //每次缩小的比例
        public int numCubes = 0;    //生成物体编号
    
        void Start()
        {   
            gameObjectList = new List<GameObject>();    //初始化
        }
    
        void Update()
        {
            numCubes++;
            
            //实例化一个 cubePrefabVar物体,返回类型为GameObject,接受者是gObj
            GameObject gObj = Instantiate(cubePrefabVar) as GameObject;
    
            //设置物体的名字,并设置随机颜色
            gObj.name = "Cube " + numCubes;
            Color c = new Color(Random.value, Random.value, Random.value);
            gObj.GetComponent<MeshRenderer>().material.color = c;
    
            //物体的坐标随机分布在 球心(0,0,0) * 10 内
            gObj.transform.position = Random.insideUnitSphere * 10;
    
            //将新创建的物体添加到 已存物体表 内
            gameObjectList.Add(gObj);
    
            //同时创建 待删物体表
            List<GameObject> removeList = new List<GameObject>();
      
            //遍历 已存物体表
            foreach(GameObject goTemp in gameObjectList)
            {
                //缩小每一个 已存物体的几何尺寸
                float scale = goTemp.transform.localScale.x;
                scale *= scalingFactor;
                goTemp.transform.localScale = Vector3.one * scale;
    
                //当尺寸达到临界值,则将物体添加到 待删物体表
                if (scale <= 0.1f)
                    removeList.Add(goTemp);
            }
            
            //遍历 待删物体表
            foreach(GameObject goTemp in removeList)
            {
                //移除对象并销毁
                gameObjectList.Remove(goTemp);
                Destroy(goTemp);
            }    
    
            //备注:C#不允许在遍历 当前List 的 foreach()内 修改当前List 内的元素;
            //故本例需要两个 foreach()配合实现功能
        }
    }
    
  • 相关阅读:
    ftp 下载最近一小时的文件
    hdu4767 Bell——求第n项贝尔数
    Uva11762 Race to 1——有向无环图&&记忆化搜索
    P3232 [HNOI2013]游走——无向连通图&&高斯消元
    Random Walk——高斯消元法
    B君的历史——复数乘法&&爆搜
    复数快速幂【模板】
    UVa11542Squre——异或方程组&&高斯消元法
    UVa10828 Back to Kernighan-Ritchie——概率转移&&高斯消元法
    高斯消元法【模板】
  • 原文地址:https://www.cnblogs.com/SouthBegonia/p/10961015.html
Copyright © 2011-2022 走看看