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()配合实现功能
}
}
Unity - 简单实例化的应用的更多相关文章
- 微软IOC容器Unity简单代码示例3-基于约定的自动注册机制
@(编程) [TOC] Unity在3.0之后,支持基于约定的自动注册机制Registration By Convention,本文简单介绍如何配置. 1. 通过Nuget下载Unity 版本号如下: ...
- 浅谈角色换装功能--Unity简单例子实现
在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效 ...
- unity 简单通用游戏模式设计
好吧好吧,又谈到这个问题了,其实早就想写这个博客了,犹豫了好久.在设计游戏的时候我本人是很排斥什么游戏架构设计,mvc什么的,我只想马上动手就把自己的游戏玩法最快的用代码敲出来,还不会出无法挽回的错误 ...
- Unity - 简单实现音频管理系统
简单实现Unity音频管理脚本,便于长短音频的播放控制和音量控制等,核心方法为对象池的应用. 项目地址:AudioPlay - SouthBegonia 包含方法: 持有所有 AudioSource ...
- 微软IOC容器Unity简单代码示例2-配置文件方式
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } n ...
- 微软IOC容器Unity简单代码示例1
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } 3 ...
- unity简单动画实现
1:创建一个Sprite Render (player)的动画对象并添加脚本Player,点击主菜单“Window(视窗)→Animation(动画窗口)”Animation面板(选中需要动画的对象) ...
- [Unity-1] Unity简单介绍
Unity是一套包含图形.声音.物理等功能的游戏引擎,提供了一个强大的关卡编辑器.支持大部分主流3D软件格式,使用C#或者JavaScript等高级语言实现脚本功能.使开发人员无需了解底层复杂技术,高 ...
- unity简单例子
1. https://www.cnblogs.com/chengxuzhimei/p/4992106.html 2.https://www.cnblogs.com/GreenLeaves/p/7086 ...
随机推荐
- Quadtrees(四分树)
uva 297 Quadtrees Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Subm ...
- Uva 10730 Antiarithmetic?
uva 10730 题意:给出一列数字,如果其中存在长度大于等于3的等差数列,输出no,不存在就输出yes 这道题标定了数列长度n,而且这n个数数据范围是从0到n-1,没有相同的数,这就给我们枚举提供 ...
- [bzoj1925][Sdoi2010][地精部落] (序列动态规划)
Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...
- Crackme3 破解教程
Crackme3 破解教程 1.先用PEiD对 Crackme3进行 壳测试 点击File右边的按钮,选中Crackme3 结果如下图所示: 即 无壳. 试运行软件 点击 Register now! ...
- 46. Spring Boot中使用AOP统一处理Web请求日志
在之前一系列的文章中都是提供了全部的代码,在之后的文章中就提供核心的代码进行讲解.有什么问题大家可以给我留言或者加我QQ,进行咨询. AOP为Aspect Oriented Programming的缩 ...
- noip模拟赛 捡金币
问题描小空正在玩一个叫做捡金币的游戏.游戏在一个被划分成 n行 n列的网格状场地中进行.每一个格子中都放着若干金币,并且金币的数量会随着时间而不断变化. 小空的任务就是在网格中移动,拾取尽量多的金币. ...
- 利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题
async await 解决异步问题,这两个关键字是es7提出的,所以测试,node和浏览器版本提高一些 async await 操作基于promise实现的 async await这两个关键字是一起 ...
- Ubuntu 16.04安装NASM汇编IDE-SASM
在Linux下,尤其是Ubuntu,SASM工具应该是用来开发汇编最好用的IDE,小巧且支持调试.支持的编译器有:NASM, MASM, GAS, FASM. 安装步骤: 下载: http://dow ...
- Cocos2d-X中的菜单
在Cocos2d-X实现显示菜单的方式比較特殊,首先须要使用CCMenu创建一个菜单,然后使用CCMenuItem创建一个菜单项,实际上程序中显示的菜单是使用CCMenu和CCMenuItemFont ...
- Handling PnP Paging Request
The following explains why the DO_POWER_PAGABLE bit must be set on the way down and not on the way u ...