Unity学习(六):Unity中的实例化炮弹并设置速度

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敌人,

粒子爆炸或破坏物体的替代品。

实例化也能直接克隆脚本实例,整个游戏物体层次将被克隆,并且返回被克隆脚本的实例

怎么克隆脚本实例的呢?详见: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);
	}
}



你可能感兴趣的:(Unity)