Onject.Instantiate实例

该函数有两个函数原型:

  1. Object Instantiate(Object original,Vector3 position,Quaternion rotation);
  2. Onject Instantiate(Object original);

对于第一个来说,是指克隆原始物体并返回该克隆物体。其位置是position,旋转位置是rotation,如果克隆的是一个游戏物体,那么该游戏体的组件或者脚本实例都将被传入,会将整个游戏包含的字对象以及层次克隆出来。

下面是Unity API给出的一个例子:

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public Rigidbody projectile;
    void Update() {
        if (Input.GetButtonDown("Fire1")) {
            Rigidbody clone;
            clone = Instantiate(projectile, transform.position, transform.rotation);
            clone.velocity = transform.TransformDirection(Vector3.forward * 10);
        }
    }
}// Instantiate a rigidbody then set the velocity
//实例化一个刚体,然后设置速度
var projectile : Rigidbody;

function Update () {
    // Ctrl was pressed, launch a projectile
    //按Ctrl发射炮弹
    if (Input.GetButtonDown("Fire1")) {
        // Instantiate the projectile at the position and rotation of this transform
        //在该变换位置和旋转,实例化炮弹
        var clone : Rigidbody;
        clone = Instantiate(projectile, transform.position, transform.rotation);

        // Give the cloned object an initial velocity along the current object‘s Z axis
        //沿着当前物体的Z轴给克隆的物体一个初速度。
        clone.velocity = transform.TransformDirection (Vector3.forward * 10);
    }
}

对于第二个函数来说,保留被克隆物体的位置和旋转。这实际上等同于在Unity使用(duplicate)复制命令,如果物体是一个Component 或GameObject,整个游戏物体包含所有组件将被克隆,如果游戏物体有一个transform,所有子物体将被复制。所有游戏物体克隆之后被激活。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public Transform prefab;
    void OnTriggerEnter() {
        Instantiate(prefab);
    }
}// Instantiates prefab when any rigid body enters the trigger.
// It preserves the prefab‘s original position and rotation.
//当任何刚体进入触发器时实例化prefab
//它保留prefab的原始位置和旋转
var prefab : Transform;

function OnTriggerEnter () {
    Instantiate (prefab);
}

需要注意的是Instantiate可以克隆任何类型的物体,包括脚本。

时间: 2024-08-28 03:58:44

Onject.Instantiate实例的相关文章

Unity3D脚本手册

翻译:脚本_树 This is a short overview of how scripting inside Unity works. Scripting inside Unity consists of attaching custom script objects called behaviours to game objects. Different functions inside the script objects are called on certain events. Th

Spring+EhCache缓存实例(详细讲解+源码下载)(转)

一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点. 优点: 1. 快速 2. 简单 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 

java异步操作实例

1.异步操作过程实例: A.开启一个线程一直执行耗时操作 B.通过每隔多长多件轮询线程是否实行完毕,thread.isCompleted() C.执行完毕后,通过回调函数返回真实信息 一个调用者在调用耗时操作,不能立即返回数据时,先返回一个取货凭证.然后在过一断时间后凭取货凭证来获取真正的数据. 所以连结调用者和真实数据之间的桥梁是取货凭证.我们先来看它的实现: public class FutureTicket{ private Object data = null; private bool

实例分析JVM安全体系:双亲委派、命名空间、保护域、策略

在了解双亲委派模型之前,先了解一下类加载器的概念: 类加载器的作用就是将真实的class文件根据位置将该Java类的字节码装入内存,并生成对应的Class对象.用户可以通过继承ClassLoader和重写findClass方法来定义自己的类加载器进行加载,系统类加载器按照层次,分为: (1).启动类加载器(Bootstrap ClassLoader):将加载 /JAVAHOME/lib以及为-Xbootclasspath所指定的目录下的类库,是核心Java API的class文件,用于启动Jav

HttpSolrServer 实例管理参考,来自org.eclipse.smila.solr

http://dev.eclipse.org/svnroot/rt/org.eclipse.smila/trunk/core/org.eclipse.smila.solr/code/为什么要对实例管理?看看wiki文档说明就知道了. /*     HttpSolrServer is thread-safe and if you are using the following constructor,     you *MUST* re-use the same instance for all

太空大战游戏开发实例

Unity 版本: 5.3.5.f1 一. 游戏策划 操作模式: 上下左右按键, 空格发射子弹 游戏中的敌人: (1) 初级敌人,装甲交弱,以撞击主角为主, 沿弧线飞行 (2) 高级敌人,装甲较强,可以发射子弹, 直线飞行 二.游戏场景制作 1.导入游戏所需要的美术资源 方法一: Assets目录点击右键->show in explorer->将美术资源直接copy到Assets目录 在回到unity3d界面就可以看到相关资源 方法二: Assets目录点击右键->import new

我的Unity3D学习日记-05(官方实例2Droguelike)

快要一个月没有更新了,这段时间也没闲着.今天就把这段时间学到的东西稍微总结一下. 前段时间开始看一些实战开发的内容和教程.一些是来自于麦子学院的视频,一些来自于蛮牛教育,还有一部分官方教学视频.最终选择试着跟着官方的教程,尝试敲一次这个叫做拾荒者的官方示例. 过程中遇到了许多之前不明白的知识,所以虽然代码量不是很大,但是仍然消耗了大量的时间用于查询其中一些使用的方法和技巧. 最终当然是仿照着实例成功地将游戏做了出来(虽然其中大部分东西只要跟着敲都问题不大.) 以下我将一些自己的见解以注释的形式写

crawler4j:轻量级多线程网络爬虫实例

crawler4j是Java实现的开源网络爬虫.提供了简单易用的接口,可以在几分钟内创建一个多线程网络爬虫. 下面实例结合jsoup(中文版API),javacvs 爬取自如租房网(http://sh.ziroom.com/z/nl/)租房信息. 1.maven导入相关包 1 <dependency> 2 <groupId>edu.uci.ics</groupId> 3 <artifactId>crawler4j</artifactId> 4 &

DFTween官方实例详解

?? 所谓流利语法的实现是成员函数 返回值是 类的实例this 出处:http://blog.csdn.net/u010019717 author:孙广东 1.Camera Shake 一个脚本,这个动画涉及到两个动画,一个是Cube自由落体使用Easing函数类型就行了.另一个是抖动使用类TweenShake成员. 在Start()函数中初始化了以上两个动画成员.然后在 Update()中按键触发自由落体完事紧接着抖动动画.fallTween. .OnCompleted( ( sender )