gpt4 book ai didi

c# - 我的脚本只更新文本一次

转载 作者:行者123 更新时间:2023-12-01 22:13:05 25 4
gpt4 key购买 nike

我想在 Unity 中制作一款 Breakout 游戏。除了“count”函数之外,我使很多函数都可以工作。我希望“计数”功能告诉用户还剩下多少 block 砖。每次砖 block (游戏对象)被破坏时,int 变量“bricks”就会减一。我遇到的问题是它只更新一次(从 104 到 103)然后停止更新。这是我的脚本:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Spawner : MonoBehaviour {

public int bricks = 104;
public Text triggerText;

void Start(){
triggerText.text = "Bricks: "+bricks;
}

public void OnCollisionEnter(){

DestroyBrick ();

}

public void DestroyBrick(){
bricks--;
Destroy (gameObject);
triggerText.text = "Bricks: "+bricks;
}

编辑:我忘了提及,我将此脚本添加到了我的 Brick 游戏对象(其中 104 个)中,以便它们在碰撞时破裂。

最佳答案

我认为您的场景中有一个生成器实例。当调用 DestroyBrick 时,您可以通过调用 Destroy (gameObject); 来终止此实例。所以你坚持103

可能的解决方案:

  • 如果它是 104 block 砖 block 的一个生成器,请删除对 Destroy 的调用
  • 如果它是附加到每个生成的 Brick 实例的一个 Brick 组件,则
    • 将计数委托(delegate)给另一个对象,比如 BrickCounter
    • 使成员变量bricks静态

编辑(受到@BradleyDotNET评论的启发):
静态成员可以进行测试。但我总是更喜欢创建一个单独的类来负责保存砖 block 计数。

关于c# - 我的脚本只更新文本一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28839447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com