1.
static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
可用于prefab的拷贝。
// Instantiates 10 copies of prefab each 2 units apart from each other
//实例化10个 prefab拷贝,间隔2个单位
var prefab : Transform;
for (var i : int = 0;i < 10; i++) {
Instantiate (prefab, Vector3(i * 2.0, 0, 0), Quaternion.identity);
}
实例化更多通常用于实例投射物(如子弹、榴弹、破片、飞行的铁球等),AI敌人,
可用于prefab的拷贝。
// Instantiates 10 copies of prefab each 2 units apart from each other
//实例化10个 prefab拷贝,间隔2个单位
var prefab : Transform;
for (var i : int = 0;i < 10; i++) {
Instantiate (prefab, Vector3(i * 2.0, 0, 0), Quaternion.identity);
}
实例化更多通常用于实例投射物(如子弹、榴弹、破片、飞行的铁球等),AI敌人,
粒子爆炸或破坏物体的替代品。
实例化也能直接克隆脚本实例,整个游戏物体层次将被克隆,并且返回被克隆脚本的实例
怎么克隆脚本实例的呢?详见:Object.Instantiate.
Gameobject下的组件很多,包括rigidbody,camera,light,animation,renderer,collider。。。。
如果要创建一个刚体,然后给它设置速度,应该怎么写呢?是在rigidbody中吗?
一个物体,它的各种速度、各种受力、质量、惯性、旋转、碰撞检测模式...都是在rigidbody里面。
//实例化一个刚体,然后设置速度
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);
}
}