Unity之预制体与变体

PS:不用说了,我在写博客就是在摸鱼

一、预制体

 不知道大家小时候有没有看过火影,记得剧情最开始的时候水木哄骗鸣人去偷封印之书,反而让鸣人学会了多重影分身之术:

好了,小编绞尽脑子终于想好怎么向大家介绍预制体了(预制体、预设体、预制件有很多种叫法)

1.1 创建一个预制体

第一个方法是在项目一栏空白处鼠标右键 ——> 创建 ——> 预制件

 第二个方法就该发挥小编的美术天赋了,小编一顿操作把鸣人画出来了(你就说像不像吧)

 可以看到物体 “鸣人” 的图标是个小立方体,然后我们鼠标按住 “鸣人” 不动,往项目一栏里面拖。

### 创建和使用Unity预制体变体Unity中,创建和使用预制体变体能够帮助开发者更灵活地管理游戏对象及其属性。当需要基于某个基础配置而有微调需求的对象时,预制体变体就显得尤为重要。 要创建预制体变体,在编辑器中选择想要作为变体的基础预制体并将其拖入场景或层次结构视图中。此时得到的是该预制体的一个实例。接下来右键点击此实例,在弹出菜单里选择`Create Prefab Variant...`选项[^1]。这一步骤将促使Unity保存当前所选实体的状态作为一个新的预制体文件,即所谓的“变体”。值得注意的是,这个新生成的预制体会继承自最初选定的那个父级预制体,并允许对其进行独立修改而不影响后者。 对于已有的预制体变体来说,可以通过直接在其上做改动来实现特定于该版本的变化。这些变化不会反映回原版预制体身上;相反,如果更新了源预制体内的某些公共设置(例如脚本逻辑),那么只要不覆盖掉变体内相应部分的手动调整,默认情况下这种变更也会传递给所有的子类——也就是各个预制体变体[^3]。 为了更好地管理和区分不同类型的预制体以及它们各自的变种形式,建议采用清晰命名约定加上良好的组织方式存放相关资源文件夹下。此外,利用标签功能标记重要特性也是不错的选择之一。 ```csharp using UnityEngine; public class PrefabVariantExample : MonoBehaviour { public GameObject originalPrefab; private void CreatePrefabVariant() { // 实例化原始预制体 GameObject instance = Instantiate(originalPrefab); // 对实例做一些个性化处理... Transform transformComponent = instance.GetComponent<Transform>(); if (transformComponent != null){ transformComponent.localScale *= 2f; // 放大两倍 } // 将其转换成预制体变体 PrefabUtility.SaveAsPrefabAssetAndConnect(instance, "Assets/MyPrefabs/PrefabVariant.prefab", InteractionMode.AutomatedAction); } } ``` 通过上述方法可以在保持原有资产一致性的同时引入必要的差异性,从而简化开发流程提高效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值