在unity中如何利用预制体创造物体

这篇具有很好参考价值的文章主要介绍了在unity中如何利用预制体创造物体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用预制体创建物体,要使用实例化方法 Instantiate()。它需要一个预制体的引用作为模版,返回值总是新创建那个物体的引用。如果预制体以 GameObject 类型传入,那么返回的结果也是 GameObject 类型的。

小提示:

任意物体都可以作为模版,但不一定是预制体

预制体的类型是GameObject。有时候由于写代码时的失误,用场景中的某个物体作为Instantiate方法的第1个参数, 同样也能成功创建新物体。

这说明在游戏运行以后,预制体和其他物体有着同等的地位,都可以使用。这种设计一方面增强了脚本的灵活性.,另一方面也经常出现因混淆而引起的各种 bug。关键是要搞清楚引用对象的关系。(虽然都是GameObject类型,但是本质不同)

在实际使用时,有时候要具体指定新建物体的位置、朝向和父物体,因此 Instantiate0 方法也具有多种重载形式,它们的区别在于参数不同。我在这挑选了3种常用的重载形式进行说明:

重载形式 参数1 参数2 参数3 参数4
仅指定父物体 预制体 父物体的Transform类型,null 表示没有父物体,置于场景根节点
指定位置和朝向 预制体 空间位置,世界坐标系,Vector3类型 物体的朝向,Quaternion类型
指定位置、朝向和父物体 预制体 空间位置,世界坐标系,Vector3类型 物体的朝向,Quaternion类型 父物体的Transform类型,null表示没有父物体,置于场景根节点

tips:预制体也可以用组件代替(unity的特色!)文章来源地址https://www.toymoban.com/news/detail-722152.html

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DeBugTest : MonoBehaviour
{
    public GameObject pre;
    // Start is called before the first frame update
    void Start()
    {
        GameObject objA = Instantiate(pre, null);
        GameObject objB = Instantiate(pre, new Vector3(3,0,3),Quaternion.identity);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

到了这里,关于在unity中如何利用预制体创造物体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity和UE4两大游戏引擎,你该如何选择?

    目录 游戏引擎 2 —— 难易区别 编程语言 3 —— 游戏产品 UE4制作的游戏产品  Unity制作的游戏产品  产品类型 5 —— 资源商店 6 —— 人才需求 平均薪资 总结      Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏开发软件,他们帮我们实现了复杂的底层逻

    2023年04月08日
    浏览(53)
  • 虚幻引擎4利用粒子系统实现物体轨迹描绘2- 消除轨迹

    之前已经实现了UE4中跟随物体利用粒子系统产生轨迹的效果,文章链接如下: 虚幻引擎4利用粒子系统实现物体轨迹描绘_ADi_hhh的博客-CSDN博客 但是上篇文章还留下了两个问题 轨迹如何清除,并随时启用生成? 轨迹积累后,粒子的产生对系统的内存等是否带来压力,导致系统

    2024年02月07日
    浏览(50)
  • Unity如何修改预制体(预制件)?

    【预制件】 预制件作用:方便复用 【预制件】的制作 直接拖拽,从层级面板 - 项目面板。层级面板中当前图标会变蓝,子物体名字变蓝色。预制件是一个文件,可以导出,也方便别人使用。 【预制件】修改 直接修改预制件的属性会影响hierarchy中的游戏对象 直接修改hierar

    2024年04月09日
    浏览(31)
  • [unity3D]什么是预制体(Prefab)?如何制作预制体?如何导出预制体?预制体变体是什么?

    将物体转成预制体之后,就可以以此为模板创建非常多个和预制体一模一样的物体了,其实就是复制。在游戏中我们都见过很多一模一样的物体,只是放置的位置或者其他一些参数不太一样,我们不可能一个一个从方块,球开始慢慢建造,所以就出现了预制体,帮助我们减少

    2024年02月02日
    浏览(31)
  • Unity学习笔记--如何优雅简便地利用对象池生成游戏对象(进阶版)LRU + 对象池

    之前写过一篇关于对象池的文章,现在来看写的并不是很好,所以来考虑优化下。 现在来看一年前写的代码,越看越不能入目hhh Unity学习笔记–如何优雅简便地利用对象池生成游戏对象 Unity学习笔记–使用 C# 开发一个 LRU PoolManager.cs BaseFactory.cs 创建 Factory 创建 object 创建 Bu

    2024年02月13日
    浏览(31)
  • 【周末闲谈】如何利用AIGC为我们创造有利价值?

    个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 在此之前,我写过一篇关于AIGC的介绍文,我们了解到AIGC的诞生给我们的生活带来了多么巨大的改变。那么我们应该怎样利用它为我们创

    2024年02月09日
    浏览(30)
  • Unity 语法详解之查找游戏物体的方法(含查找隐藏物体)

    为了更好的看懂,有一个非常基础的知识,如果不知道可以移步去了解一下哦 unity | gameobject和transform的区别和关联通俗解释_gameobject transform_菌菌巧乐兹的博客-CSDN博客 一、前情提要 大写的 GameObject是个类,里面写满了物体有关的代码 小写的 gameObject指的是物体本身 大写的

    2024年02月12日
    浏览(33)
  • 【Unity3D】Unity 脚本 ③ ( C# 脚本的执行入口函数 | 获取当前游戏物体及物体名称 | 获取游戏物体的 Transform 组件数据 | UnityEngine 命名空间简介 )

    在 C# 脚本中控制 游戏物体 GameObject 运动 , 要先获取该物体 , 然后 修改其 Transform 组件的属性 ; 在 游戏开始运行后 , 会自动执行 游戏物体 GameObject 上的 C# 组件代码 , 程序入口是 MonoBehaviour#Start() 函数 ; 在 C# 脚本中 , 主要的内容都在 Start() 函数 中实现 ; 在 C# 脚本中 , 游戏物体

    2023年04月12日
    浏览(59)
  • Unity上接入手柄,手柄控制游戏物体移动

    1、unity软件上安装system input 组件。菜单栏【window】-【Packag Manager】打开如下界面,查找Input System,并且安装。 2、安装成功后插入手柄到windows上,打开菜单栏上【window】--【Analysis】--【Input Debuger】 进入Input Debug界面,可以看到手柄设备能被Unity识别。 3、双击【XinputControllerW

    2024年04月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包