Unity3D常用 API 之实例化与销毁
1.实例化游戏物体
1.1.游戏中的案例介绍
在很多 MMORPG 类的游戏中都有类似于“金钱副本”的副本关卡。在这类副
本中通常都是限定一个时间,在这个时间内玩家可以尽情的破坏,然后收集金钱。
分析游戏截图讲解场景元素:[见图]
①场景中所有的坛子,模型都是一样的,坛子是预制体。
②坛子是从“天上”掉下来的,所以坛子模型身上有刚体组件。
③如果玩家在一段时间内没有打碎坛子,这些坛子会消失。
1.2.案例场景制作
①创建地面模型;(Plane)
②创建“坛子”模型,并制作成预制体;(Cube)
1.3.实例化生成 1 个坛子
实例化生成物体:
GameObject.Instantiate(Object, Vector3, Quaternion);
参数说明:
Object:用于实例化的预制体;
Vector3:实例化后生成的物体所在的位置;
Quaternion[四元数]:实例化后生成的物体的旋转状态;
Quaternion.identity:无旋转;
图解:
这里选择public(公共的)修饰,会在script面板中出现一个Go Prafab的属性,如果是private(私有的)是没有的;
通过拖拽就可以让goPrafab字段持有了Cube的应用,在代码中就可以访问到它了
运行游戏:在Create上方1M的就被实例化出了一个cube
实例化出来的物体是有clone标志的
1.4.构造随机位置
位置是用 Vector3 类型进行表示的。
X,Y,Z 三个值确定了物体在三维世界中的位置。
Random.Range(min, max):生成随机数。
在 min 和 max 直接随机生成一个随机数。
图解:
表示在X轴的9到-9之间、Y轴的10、Z轴的9到-9之间当中的位置其中一个位置生成
在演示中,可以看到每次运行了3次游戏,每次Cube产生的位置都不同,但高度不变
演示:按下键盘的一个键,就在随机位置实例化一个物体。
X轴和Z轴随机,Y轴不随机
2.销毁游戏物体
GameObject.Destroy(Object, float);定时销毁某个游戏物体。
参数说明:
Object:要销毁的游戏物体;(自身叫gameObeject)
float:时间,多少秒后销毁;
因为销毁动作是物体自身的动作,所以我们将这个新的脚本挂载到要销毁的物体身上
开始后,物体逐渐消失