猿问

感觉我好像把复制的物体又复制了,该怎么改啊?

我想发射子弹,点击鼠标生成一颗,点一下生成一颗,而且每生成一颗,程序就会自动计数,结果变成点一下,所有的子弹都一分二位,但是子弹数只加1

#pragma strict

function Start () {

}

var newobject:Transform;
var shedanshu:int=0;
function Update () {

if(Input.GetButtonDown("Fire1")){
var n:Transform=Instantiate(newobject,transform.position,transform.rotation);
var fwd:Vector3=transform.TransformDirection(Vector3.forward);
n.rigidbody.AddForce(fwd*2800);
shedanshu++;
gameObject.Find("gt").GetComponent(GUIText).text="射弹数"+shedanshu;
}

}
java语言

交互式爱情
浏览 282回答 1
1回答

catspeake

你这个newobject传递进来绝对是个名称为sedan(clone)的物体,实例化的时候是会在prefeb名称后加上(clone)的,你只要自己命名一下就可以了,n.name = "sedan",那么显示的物体名就是sedan了,然后你这个代码是放在Update里面的,所以在执行按键响应的时候会同时生成多个子弹,然后子弹有rigidbody,所以碰撞弹开让你有一分为二的感觉,所以你需要加上子弹释放CD。利用Timer.delTime来做。顺便说下,你这是javascript 不是javavar time = 0;function Update(){time +=Timer.delTime;if(Input.GetButtonDown("Fire1")){if(time > 1){time = 0;doCreatSedan();}}}
随时随地看视频慕课网APP

相关分类

Java
Unity 3D
我要回答