基本上这个游戏是一个破砖者,我将在其中给出一个快速的基本背景。游戏将在随机位置产生10块砖,如果全部击中砖块 一次,砖被摧毁。如果所有10块砖被破坏,那么用户将被带到另一个场景(游戏)。
我的主要问题是当我摧毁所有砖块时,我没有被重定向到现场。但是,如果我将numberOfBricks设置为1,它将起作用..我无法理解发生了什么。
非常感谢! -HurpaDurpa
using UnityEngine;
using System.Collections;
public class BrickScript : MonoBehaviour {
public int position_x = 0;
public int position_y = 0;
public GameObject Brick;
public int brickDamage = 0;
public int numberOfBricks = 10;
// Use this for initialization
void Start () {
Brick = GameObject.Find ("Brick");
position_x = Random.Range (-6, 6);
position_y = Random.Range(-1, 4);
transform.position = new Vector3 (position_x, position_y, transform.position.z);
}
// Update is called once per frame
void Update () {
if (brickDamage == 1) { //destroy brick on 1 hit
numberOfBricks--;
Object.Destroy (gameObject); //so it will destroy the hit object
}
if (numberOfBricks == 0) {
Application.LoadLevel (1);
numberOfBricks = 10;//Variable resetted
}
}
void OnCollisionEnter(Collision collision)
{
brickDamage++;
}
}
答案 0 :(得分:0)
这种情况正在发生,因为您似乎已将上面的脚本附加到每个砖块上。
所以真正发生的事情是,当你的任何一块砖被击中时, numberOfBricks 减少1,结果值为9.这将发生在每块砖上。
相反,您需要做的是将此 numberOfBricks 计数器保留在另一个脚本中。在代码的OnCollisionEnter部分,您应该将其他脚本中的 numberOfBricks 变量减少1.
这样做,你会看到你期望的结果。