实例化创建4个投射物,而不是1个
本文关键字:1个 创建 4个 投射物 实例化 | 更新日期: 2023-09-27 18:25:40
我有一枚炮弹,我想在按下空格时装载并发射。这是我的代码,以及我的角色脚本的其余部分:
public float moveSpeed = .2f;
public float shotspeed = 1f;
int selectedCharacter = 1;
int selectedProjectile = 1;
string characterName;
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.LeftArrow)) {
transform.position = transform.position + new Vector3(-moveSpeed, 0f, 0f);
}
if (Input.GetKey (KeyCode.RightArrow)) {
transform.position = transform.position + new Vector3(moveSpeed, 0f, 0f);
}
if (Input.GetKeyDown (KeyCode.Space)) {
GameObject bullet = (GameObject)Resources.Load("Projectile" + selectedProjectile, typeof(GameObject));
Instantiate (bullet, transform.position, Quaternion.identity);
}
if (Input.GetKeyDown (KeyCode.Tab)) {
if (selectedCharacter < 4) {
selectedCharacter++;
selectedProjectile++;
}
else {
selectedCharacter = 1;
selectedProjectile = 1;
}
for (int i = 1; i < 5; i++) {
if (i != selectedCharacter){
characterName = "C" + i;
GameObject.Find (characterName).GetComponent<Renderer>().enabled = false;
}
else {
characterName = "C" + selectedCharacter;
GameObject.Find(characterName).GetComponent<Renderer>().enabled=true;
}
}
}
}
这是因为我有四种不同的投射物,每次按下tab键时,所选的投射物都会发生变化
附在炮弹上的是一个炮弹运动脚本。
但是,当我按空格键时,会实例化4个项目符号,而不是一个。
我做错了什么?
我把注释移到了一个答案上
如果硬件不是问题所在,那么我怀疑脚本附加到了多个对象。
你还有其他角色吗?你是用代码附加脚本吗?在检查员?
一个解决方案可以是添加一个shotDelay。但这只是一个变通办法。
我建议您仔细检查是否没有将脚本附加到多个对象。