Onject.Instantiate实例
该函数有两个函数原型:
- Object Instantiate(Object original,Vector3 position,Quaternion rotation);
- 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 * );
}
}
}// 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 * );
}
}
对于第二个函数来说,保留被克隆物体的位置和旋转。这实际上等同于在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可以克隆任何类型的物体,包括脚本。
Onject.Instantiate实例的更多相关文章
- Object.Instantiate 实例
static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object ...
- [unity菜鸟] 笔记1 —— 函数篇
SendMessage() 调用其他物体中的指令,先在脚本中编写一个自定义的函数,然后使用SendMessage()命令来调用那个物体上的命令 //①将以下函数附给target对象 void Rena ...
- cocos creator主程入门教程(三)—— 资源管理
五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 在初识篇,我介绍过怎样加载prefab.cocos提供了一系列的加载接口,包括cc.loader.loa ...
- NGUI 学习总结
NGUI 学习一段时间了,这里总结一下,用于以后查看. 获取组件 在Awake函数里获取组件,然后就可在Start以及其他函数里使用 lbl = GetComponent<UILabel> ...
- java反序列化-ysoserial-调试分析总结篇(4)
1.前言 这篇文章继续分析commoncollections4利用链,这篇文章是对cc2的改造,和cc3一样,cc3是对cc1的改造,cc4则是对cc2的改造,里面chained的invoke变成了i ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- unity, instantiate一个实例后,先指定parent,再指定position
instantiate一个实例后,先指定parent,再指定position,才能保证position正确,如果先指定position再指定parent,则position会错误.
- Unity3D 5.x 简单实例 - 发射炮弹
1,下载.安装: http://unity3d.com/cn/get-unity/download/archive 建议直接借助 UnityDownloadAssistant 进行安装,根据需要勾选需 ...
- [Spring框架]Spring开发实例: XML+注解.
前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...
随机推荐
- 将linux下的rm命令改造成mv到指定的目录下
rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单#rm -rf ./*这没什 ...
- Java:几个正则式应用(检查汉字、日期、EMAIL、手机号码的合法性,替换字符串等)
1. 检查输入是否为合法汉字 /** * 判断输入字符是否为有效汉字 * @param str 字符 * @return 是否合法汉字 */ public static boolean isValid ...
- ny47 过河问题
过河问题 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不敢过桥去的 ...
- 重装Ubuntu系统
1.安装JDK参考:http://weixiaolu.iteye.com/blog/1401786jdk-6u31-linux-i586.bin莫名奇妙的安装失败.所以下载了jdk-7u45-linu ...
- 【转】【Unity】四元数(Quaternion)和旋转
http://blog.csdn.net/candycat1992/article/details/41254799
- C# 异常类型
Exception 类 描述 SystemException 其他用户可处理的异常的基本类 ArgumentException 方法的参数是非法的 ArgumentNullException 一个空 ...
- 一站式学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流
应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...
- KafkaStream时间戳问题CreateTime = -1引起的程序中断
Exception in thread "app-8835188a-e0a0-46da-ac2a-6820ec197628-StreamThread-1" org.apache.k ...
- C#递归累计到父行
搞了半天 写了一个算法,希望能帮到需要的朋友 效果如下 水电费用是由 就是部门水费和电费累加的,而部门水费由科室水费累加起来的 表结构 DataTable dt = new DataTable(); ...
- centos7 firewalled
FirewallD 使用服务(service) 和区域(zone)来代替 iptables 的规则(rule)和链(chain). 默认情况下,有以下的区域(zone)可用: drop – 丢弃所有传 ...