Unity3D入门 第叁章:Prefabs(预设)与 Instantiate(实例化)

本文介绍Unity3D中Prefabs(预设)的概念及其使用方法,并通过实例演示如何结合Instantiate实现对象的批量实例化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

04.jpg
叁章 Prefabs(预设)与 Instantiate(实例化)

解释:Prefabs(预设)是一种资源类型,可被重复使用的游戏对象。它可以被置入多个场景中,又或者能够在一个场景中被多次置入。当你在一个场景中增加一个Prefabs,你就实例化了一个Prefabs。所有Prefabs实例都是Prefab的克隆,只要Prefabs原型发生改变,所有的Prefabs实例都会产生变化。

Prefabs的用法:如果大家要创建一些想要重复使用的东西,那么就该用到它了。

接下来我们写个小例子,看看如何使用它

1 搭建如下场景:一个地板,一个下落的立方体,调整摄像机的角度和位置,加个平行光,位置参考下图的Scene窗口,效果如Game窗口展示的那样。同时给立方体加上刚体属性(Component -> Physics -> Rigidbody)
01.jpg
然后调整一下立方体的角度,运行一下,让它滚一下。

2  创建Prefabs

在Preject窗口,点Create-> Prefab。然后我们从Hierarchy窗口中将立方体拖到Project窗口新创建的Prefab上。当Hierarchy中的立方体变成了蓝色,Prefabs就完成了填充。

02.jpg
然后你从Preject窗口中将创建的Prefabs拖入Scene窗口中,运行一下。就完成了一次克隆。它们就像双胞胎一样。

3  接着我们配合Instantiate,来用代码创建多个Prefabs的实例。

Instantiate:克隆原始物体。设置位置,角度。如果一个对象,组件,脚本实例被传入。将克隆整个对相爱难过的层次,以及所有子对象。

各位同学,让我们在Project窗口点Create -> Javascript创建一个脚本

我发现可以用as3的写法来写这里面的js,各位同学请看

  1. public var Pre:GameObject;//在编辑器中用来绑定的Prefabs
  2. private function Update ():void
  3. {
  4.         var instance:GameObject=Instantiate(Pre,transform.position,transform.rotation);
  5.         //Instantiate用法,注意参数
  6. //Pre  用来克隆的Prefabs
  7.         //transform.position  脚本绑定对象的位置 就像this.transform….
  8.         //transform.rotation  脚本绑定对象的角度 就像this.transform….
  9. }

复制代码

是不是有很亲切的感觉?

4 写完脚本,我们要把它绑定到一个对象上。这时候,我们可以删除Hierarchy窗口中的立方体,然后创建一个空的游戏对象(GameObject->Create Empty),放置到原来立方体的位置上。将脚本拖放到Hierarchy窗口中的新键的空对象上,让它来执行代码。

5 在Hierarchy窗口中单击空对象,在它的Inspector窗口中就能看到绑定的脚本。然后我们把早前创建的Prefabs拖到脚本Pre右边的框上,完成了脚本中变量的绑定。
03.jpg
6 按小三角运行一下,搞的像粒子效果一样,是不是很嗨?
04.jpg

 

转载自:Unity3D入门 第叁章:Prefabs(预设)与 Instantiate(实例化)

在制作音乐节奏类游戏时,让障碍物音乐节奏同步是一项关键的技术挑战。为了帮助你理解和掌握这项技术,推荐参考《Unity3D跑酷游戏制作:年度项目结题报告》。这份资料详细介绍了如何将游戏音乐结合,以及如何在Unity3D中编程实现这一功能。 参考资源链接:[Unity3D跑酷游戏制作:年度项目结题报告](https://wenku.youkuaiyun.com/doc/3bvpkxit6s?spm=1055.2569.3001.10343) 首先,你需要在游戏设计阶段决定音乐节奏的具体模式和障碍物的生成逻辑。接下来,可以在Unity3D中使用C#语言编写脚本来实现这一功能。脚本将需要监听音乐节奏的点,并根据预设的音乐节奏图生成相应的障碍物。这通常涉及到音乐节奏的实时分析,你可以使用专门的音频分析库来获取音乐节奏数据。 实现这一功能的具体步骤如下: 1. 在Unity3D中创建一个音频源(AudioSource),用于播放背景音乐。 2. 利用音频分析库(如BASS或者FMOD),获取音乐的节奏点和节拍信息。 3. 在脚本中设置时间事件监听器,当检测到节奏点时触发障碍物生成。 4. 设计障碍物的预制件(Prefabs),并在检测到节奏点时实例化它们。 5. 使用脚本控制障碍物的移动和消失,确保它们音乐节奏保持同步。 以下是一个简化的示例代码片段,展示了如何在检测到节奏点时生成障碍物: ```csharp using UnityEngine; using System.Collections; public class ObstacleSpawner : MonoBehaviour { public AudioSource audioSource; // 音频源组件 public GameObject obstaclePrefab; // 障碍物预制件 private void Update() { if (ShouldSpawnObstacle()) { SpawnObstacle(); } } private bool ShouldSpawnObstacle() { // 这里将包含音乐节奏分析的逻辑,返回一个布尔值 // 表示是否到了生成障碍物的时刻 return AudioAnalyzer.GetNextBeatTime(audioSource) < Time.time; } private void SpawnObstacle() { // 实例化障碍物预制件 Instantiate(obstaclePrefab, transform.position, Quaternion.identity); } } ``` 在项目结题报告《Unity3D跑酷游戏制作:年度项目结题报告》中,你将找到更多关于游戏设计、音视频处理以及编程的详细信息和实际操作案例。通过学习这些内容,你将能够理解如何将技术应用于游戏开发的各个方面,并最终实现一个完整的音乐节奏类游戏项目。 参考资源链接:[Unity3D跑酷游戏制作:年度项目结题报告](https://wenku.youkuaiyun.com/doc/3bvpkxit6s?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值