于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

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-12-28 08:39:21

于Unity3D动态创建对象和创建Prefab三种方式的原型对象的相关文章

js 类创建的 三种方式

第一种方式:  简单的 JavaScript 类(使用工厂方法) 1. 首先 通过原型继承创建一个对象 第二种方式: 使用构造函数来定义 /**原型对象是类的唯一标识: * 当且仅当两个对象继承自同一个原型对象时, 它们才属于对一个类的实例. * 而构造函数则不能作为类的标识, 两个构造函数的prototype属性可能指向同一个原型对象, * 那么这两个构造函数创建的实例就属于同一个类. * */ function Range(from, to){ this.from = from; this.

单例模式创建的三种方式

一.单例模式的好处 1.对于频繁使用的对象,可以省略new操作花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销: 2.由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间. 二.创建方式 1)饿汉式 1 public class Singleton { 2     private Singleton(){ 3         System.out.println("Singleton is create"); 4     } 5 

控制器创建的三种方式

1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 // 1.创建UIWindow 4 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 5 self.window.backgroundColor = [UIC

05_创建线程三种方式对比

[采用实现Runnable.Callable接口方式创建多线程] [优点]1.线程只是实现了Runable接口或者Callable接口,还可以继承其它类. 2.在这种方式下,多个线程可以共享同一个target对象,比较适合多个相同线程来处理同一份资源的情况. [缺点] 编程略复杂,如果需要访问当前线程,则必须使用Thread currentThread()方法. [采用继承Thread类来创建多线程] [优点] 编写简单,如果需要访问当前线程,只需使用this即可获得当前线程. [缺点] 因为继

49、多线程创建的三种方式之继承Thread类

继承Thread类创建线程 在java里面,开发者可以创建线程,这样在程序执行过程中,如果CPU空闲了,就会执行线程中的内容. 使用Thread创建线程的步骤: 1.自定义一个类,继承java.lang包下的Thread类 2.重写run方法 3.将要在线程中执行的代码编写在run方法中 4.创建上面自定义类的对象 5.调用start方法启动线程 package com.sutaoyu.Thread; //1.自定义一个类,继承java.lang包下的Thread类 class MyThread

Spring创建对象的三种方式以及创建时间

创建对象的三种方式: 1.采用默认的构造函数创建 2.采用静态工厂方法 1.写一个静态工厂方法类 public class HelloWorldFactory { public static HelloWorld getInstance(){ return new HelloWorld(); } } 2.在spring的配置文件中进行声明 <bean id="helloWorld2" class="com.itheima05.spring.bean.HelloWorld

0166 DOM 之 节点操作: 删除节点,删除留言案例,复制(克隆)节点,动态生成表格案例,创建元素的三种方式,innerHTML和createElement效率对比

1.1.1 删除节点 node.removeChild(child) // 此处的node指 父节点 node.removeChild() 方法: 从 node节点中删除一个子节点,返回删除的节点. <button>删除</button> <ul> <li>熊大</li> <li>熊二</li> <li>光头强</li> </ul> <script> // 1.获取元素 va

【Spring】创建对象的三种方式

关于Spring的搭建可参见:浅析Spring框架的搭建.在测试之前还是应该先将环境配置好,将相关Jar包导进来.Spring创建的对象,默认情况下都是单例模式,除非通过scope指定. 一.通过构造函数创建对象. 2.1 利用无参构造函数+setter方法注入值 最基本的对象创建方式,只需要有一个无参构造函数(类中没有写任何的构造函数,默认就是有一个构造函数,如果写了任何一个构造函数,默认的无参构造函数就不会自动创建哦!!)和字段的setter方法. Person类: package com.

C++创建对象的三种方式

#include <iostream> using namespace std; class A { private: int n; public: A(int m):n(m) { } ~A(){} }; int main() { A a(1); //栈中分配 A b = A(1); //栈中分配 A* c = new A(1); //堆中分配 delete c; return 0; } 第一种和第二种没什么区别,一个隐式调用,一个显式调用,两者都是在进程虚拟地址空间中的栈中分配内存,而第三种