7.预制体

什么是预制体呢?

        

预制体的概念:


  预制体: 预先制作好的游戏物体

  为什么需要?比如:小兵有不同的类型,有跑车。。需要让小兵加载出来,需要什么去加载,这个加载的逻辑就是预制体。

 这个就是预制体,以prefab结尾的文件

预制体的使用

        

 拖到这两个地方都行

        基于预制体 ,创建的游戏物体比较接近“引用关系”,我们修改预制体会直接

导致场景中的游戏物体发生变化

             

        预制体的修改具备特殊性,需要进入“异世界进入编辑”。 

  进入异世界的方法:

   

        

 

预制体的删除,不会影响游戏中的物体:

 但是游戏物体会在层级面板中变成红色,意味着预制体被删除了,

我们可以在层级面板中右键,取消这种引用关系,让这个游戏物体变成普通的游戏物体。

 

预制体可以嵌套预制体:

 

现在进入的是预制体--小兵的“异世界”,可以把预制体帽子,嵌套到小兵上面。

在小兵的异世界里面修改预制体帽子,则在本来的世界里面的预制体帽子不会受到影响。

 

变体:

        在创建预制体的过程当中,如果游戏物体已经是预制体,那么unity会提示:

 

这里面有两个选项:
        1.原始预制体:一个独立的预制体。

        2.预制体变体:旧的(原来的)预制体变化,变体也会发生变化,但是变体保留和预制体不同的部分。

我们先看原始预制体:

 

 然后在“小兵2号”的“异世界”里面,修改一条腿的颜色,小兵1号也会改变颜色。

        实际上就是以小兵1号作为蓝本,改变小兵2号的颜色,小兵1号的颜色也会跟着改变;实际上小兵1号已经变成了小兵2号了,和原来的预制体“小兵”已经没有任何关系了;

 小兵预制体没有任何变化。

再来看预制体变体:

        预制体变体:就是新创建的预制体做的改变,不会影响原来的预制体的属性,但是原来的预制体做的改变会影响新的预制体。

它们两个的区别就是:

        原始预制体:新的能改变旧的

        预制体变体:旧的能改变新的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现这个功能,可以按照以下步骤: 1. 创建一个武器模型,并将其保存为预制。 2. 在角色身上创建一个空物,作为武器的父物。 3. 在角色身上创建一个空物,作为武器生成的位置。 4. 在角色身上创建一个脚本,用于控制武器的生成和跟随。 5. 在脚本中,使用Instantiate()函数生成武器预制,并将其作为子物添加到武器父物下。 6. 在脚本中,使用Transform.SetParent()函数将武器父物作为武器生成位置的父物。 7. 在脚本中,使用Transform.localPosition和Transform.localRotation属性对武器进行定位和旋转,使其正确跟随角色。 下面是一个简单的示例代码: ```c# public class WeaponController : MonoBehaviour { public Transform weaponParent; // 武器父物 public Transform weaponSpawnPoint; // 武器生成位置 public GameObject weaponPrefab; // 武器预制 private GameObject currentWeapon; // 当前武器 void Update() { if (Input.GetKeyDown(KeyCode.Space)) // 按下空格键生成武器 { if (currentWeapon != null) { Destroy(currentWeapon); // 如果当前已有武器,则销毁它 } currentWeapon = Instantiate(weaponPrefab, weaponParent); // 生成新武器并添加到武器父物下 currentWeapon.transform.SetParent(weaponSpawnPoint); // 将武器父物作为武器生成位置的父物 currentWeapon.transform.localPosition = Vector3.zero; // 定位武器 currentWeapon.transform.localRotation = Quaternion.identity; // 旋转武器 } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值