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);
	}
}



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值