于Unity3D动态创建对象和创建Prefab三种方式的原型对象
u3d在动态创建的对象,需要使用prefab
和创建时 MonoBehaviour.Instantiate( GameObject orignal) 需要的对象为原型。
文提供三种方式获得prefab对象。
方式一:使用脚本的public字段
直接在Project视图里找到做好的prefab,将其拖拽到指定脚本的指定public GameObject 字段。
方式二:Resource类
1、在Assets目录下的任何位置创建一个名为resources的目录。将做好的prefab放到这个目录下,path形式例如以下:
Assets\....\resources\prefabName.prefab
2、在代码里使用Resource.Load 或 LoadAll 函数,获得原型对象。
指定prefab时不须要指定扩展名(.prefab),形式例如以下:
GameObject prototype = Resource.Load("prefabName") as GameObject;
能够有随意数量的resources目录,怀疑是Resource类初始化的时候会搜集全部resources目录里的文件名称。
方式三:载入到场景
一般我们制作Perfab的时候,都是在Hierarchy视图里创建GameObject,然后再搭建Prefab。
事后依据须要删除这个原始的GameObject。
因此我们能够保留这个GameObject。然后在场景载入后Find这个对象(代码方式),或者使用脚本public字段(编辑器方式)。
使用方式一更符合unity的风格吧。
我使用方式二,由于我是程序猿~~想一切用代码来控制。
方式三比較罗嗦了。
Instantiate() as GameObject 就可以转取而代之GameObject,对于他制定相应的Compment
版权声明:本文博客原创文章。博客,未经同意,不得转载。
相关文章
- PHP echo一个对象报语法错误,为什么?
- C++ 函数返回对象还是引用?浅析左值引用和右值引用
- C++-创建“智能指针”函数02:make_shared(创建并返回shared_ptr至指定类型的对象)【定义在memory.h标准头文件中】
- 对象的序列化存储:Serializable 和 Parceable
- JS 中对象的简单创建和继承
- 2.Java对象创建
- JVM系列一(Java内存区域和对象创建).
- JavaScript之Ajax(一)创建Ajax对象
- Java中创建String对象的两种方式
- 模拟spring框架,深入讲解spring的对象的创建
- Java 练习(创建类, 设计类Circle计算圆的面积, 对象数组)
- JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象
- 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor
- js:对象的创建(为prototype做铺垫)
- CWaitableTimer计时器,创建计时器对象访问使用
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor和ActionDescriptor的创建
- Blender绘制基本网格对象(转)
- 根据图像路径,创建CBitmap对象的方法
- 大数据必学Java基础(九十五):预编译语句对象
- 12.C++-构造与析构函数的调用,const成员函数,const对象,this指针
- 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 )
- 对象与表映射不上时怎办?MyBatis-Plus注解帮你