1.什么是Prefab?

Prefab又被称为预设,以下部分来自官网:预置是一种资源类型——存储在项目视图中的一种可反复使用的游戏对象。预置能够多次放入到多个场景中。

当你加入一个预置到场景中,就创建了它的一个实例。全部的预置实例链接到原始预置。基本上是它的克隆。

无论你的项目存在多少实例。当你对预置进行不论什么更改。你将看到这些更改将应用于全部实例。

当预置源发生变化,这些变化将应用于全部已链接的游戏对象。比如。假设加入一个新的脚本到预置。全部已链接的游戏对象都将立马包括该脚本。

可是。它有可能改变一个单独实例的属性,同一时候保持链接。

改变不论什么一个预置实例的属性,能够看到变量名称变为粗体。如今该变量能够被重写。全部的重写属性不会影响预置源的变化。

这使你能够改动预置实例使它们变得独一无二,而不破坏它们与预置源之间的链接。

2.Prefab有哪些特点、长处?

a. Prefab一个重要的优势就是编辑prefab资源后。场景中所有使用Prefab克隆的游戏对象将所有使用新编辑的资源。无需一个一个的给场景中的对象赋值。

b.当游戏中须要频繁创建一个物体时,使用Prefab可以节省内存。

c.当你在一个场景中添加一个Prefabs。你就实例化了一个Prefabs。

3.什么情况下使用Prefab呢?

假设须要频繁的创建一些反复的物体时。就应该使用Prefab

4.Prefab与常规资源的差别?

Prefab实际上是资源的一些组合链接(个人观点)。

5.Prefab相关接口

PrefabUtility.CreatePrefab(prefabpath, prefabobj);
PrefabUtility.ReplacePrefab(...);
EditorApplication.SaveAssets();

[Unity-21] Prefab具体解释的更多相关文章

  1. unity, 保存prefab时material丢失问题

    在程序运行时用replacePrefab(gameObj,prefab)或createPrefab(gameObj,prefab)保存prefab,遇到保存出来的prefab中material丢失的问 ...

  2. Unity随机Prefab,自动前往某点处理

    对与U3D  AI,看了下,自己做了小功能,以备后用啊! 一,在某区域随机产生某个对象 C# 文件名称为RadomAPoint.cs using UnityEngine; using System.C ...

  3. unity的prefab(预设)例子

    prefab用于预先设置一些控件,在需要的时候直接引用,简化开发,当然,你完全可以用写代码解决 在场景内新建一个空物体,绑定一个脚本 void Start () { GameObject cube = ...

  4. unity, break prefab instance

    菜单->GameObject->Break Prefab Instance,可以打断prefab实例与prefab的连接. 一个用处是:比如想从sceneA拷贝一部分Hierarchy结构 ...

  5. unity 查看prefab层次

    点那个箭头,可以展开:

  6. 5. Unity脚本的执行顺序

    Unity是不支持多线程的,也就是说我们必须要在主线程中操作它,可是Unity可以同时创建很多脚本,并且可以分别绑定在不同的游戏对象身上,他们各自都在执行自己的生命周期感觉像是多线程,并行执行脚本的, ...

  7. Unity Shader入门教程(一)

    参考文献:http://www.360doc.com/content/13/0923/15/12282510_316492286.shtml Unity Shader是着色器,将纹理.网格信息输入,得 ...

  8. 【Unity游戏开发】UGUI不规则区域点击的实现

    一.简介 马三从上一家公司离职了,最近一直在出去面试,忙得很,所以这一篇博客拖到现在才写出来.马三在上家公司工作的时候,曾处理了一个UGUI不规则区域点击的问题,制作过程中也有一些收获和需要注意坑,因 ...

  9. 【Unity笔记】Awake()和Start()的区别

    Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行. v ...

随机推荐

  1. How To: IDENTIFY THE ASM DEVICE FROM ASMLIB

    使用oracleasm querydisk可以查询到device的major和minor,从而对应. for i in `oracleasm listdisks` do oracleasm query ...

  2. js如何判断数组是Array类型

    在说明如何判断一个对象为数组类型前,我们先巩固下js的数据类型,js一共有六大数据类型:number.string.object.Boolean.null.undefined.var str=&quo ...

  3. Cannot find class: com.mysql.jdbc.driver

    mybatis配置mysql报错,信息如下 Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Caus ...

  4. 零基础入门学习Python(28)--文件

    知识点 Python中使用open(...)这个内置函数来打开文件,并返回文件对象 open()函数参数说明: open(file, mode='r', buffering=-1, encoding= ...

  5. Linux命令整理(2018/9/9-2018/9/15)

    根据本周的Linux学习进度,整理了部分Linux知识及常用命令,待完善…… 1.显示默认启动方式(默认启动目标): systemctl get-default 2.设置默认启动方式(默认启动目标): ...

  6. windows事件查看器

    如果一个软件发生异常,软件本身没有提示异常信息, 需要从事件查看器中查看产生的错误事件 运行输入eventvwr或者win + X

  7. 测试第一个Oracle存储过程

    存储过程语句 //简单存储过程的例子 //每调用一次打印一次hello world create or replace procedure sayhelloworld as begin dbms_ou ...

  8. Spring 和 Hibernate的整合

    问题 ,spring 和 hibernate 整合 如何整合 1. Spring 使用Hibernate的的SessionFactory 2. Hibernate使用Spring提供的声明式事务

  9. BNUOJ 7178 病毒侵袭持续中

    病毒侵袭持续中 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 30 ...

  10. Spring & Java

    Spring & Java https://spring.io/ Spring Boot https://www.shiyanlou.com/courses/1152 Spring Boot入 ...