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 ...
随机推荐
- Linux下“任务管理器”
也不知道linux叫不叫任务管理器. Ctrl+Alt+T打开终端,输入top,就会出现一堆东西. 如果有个东西未响应了,就可以输入k+这个进程的pid就可以杀死它. https://blog.csd ...
- 类与类之间的关系UML模型图
关联.依赖.聚合.组合.泛化.实现 类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition ...
- 在vmware中 centos7安装gooderp
环境为windows 10系统,vmware 12,centos 7.4.centos安装了gnome桌面,用里面的终端来安装,自带的firefox浏览器. 增加用户 首先要新建一个用户来管理good ...
- 【12】AngularJS 事件
AngularJS 事件 AngularJS 有自己的 HTML 事件指令. ng-click 指令 ng-click 指令定义了 AngularJS 点击事件. <div ng-app=&qu ...
- JavaSE 学习笔记之集合框架(十八)
集合框架:,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合和数组的区 ...
- Dubbo 是一个分布式服务框架
Dubbo 是一个分布式服务框架-----http://www.cnblogs.com/chanshuyi/p/5144288.html
- JavaEE最新技术整理--新技术
JavaEE最新技术整理-----https://blog.csdn.net/qq_21683643/article/details/79747922
- [ZJOI2008]杀蚂蚁antbuster
[ZJOI2008]杀蚂蚁antbuster 题目 最近,佳佳迷上了一款好玩的小游戏:antbuster.游戏规则非常简单:在一张地图上,左上角是蚂蚁窝,右下角是蛋糕,蚂蚁会源源不断地从窝里爬出来,试 ...
- JavaMelody开源系统性能监控
https://blog.csdn.net/itopme/article/details/8618067
- - > 动规讲解基础讲解四——最大子段和问题
给出一个整数数组a(正负数都有),如何找出一个连续子数组(可以一个都不取,那么结果为0),使得其中的和最大? 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13.和为20. ...