【问题标题】:Counter to victory in Unity反对团结的胜利
【发布时间】:2014-12-10 17:38:33
【问题描述】:

在 Unity 中工作时遇到问题。我只是想在每次发生碰撞时增加分数,但我的代码没有帮助。我知道这听起来很基本,但我已经在网站上四处寻找了很长一段时间,但我还没有找到答案。 这是脚本:

我已经检查过了,“VictoryScreen”已经制作完毕。

public class PaintScriptGreen : MonoBehaviour {

    public GameObject CylGreen;

    private int score = 0;

    private Vector3 tempPos;

    private Quaternion tempRot;

    private GameObject tempCyl;

    void Awake () 
    {

    }

    public void AddScore (int scoreValue)
    {
            score += scoreValue;
    }

    void OnTriggerEnter(Collider col)
    {
        if (col.gameObject.tag == "Cylinder" && col.gameObject.tag != "TreeHolder") 
        {
            tempPos = col.gameObject.transform.position;
            tempRot = col.gameObject.transform.rotation;
            Destroy (col.gameObject);
            tempCyl = Instantiate(CylGreen, tempPos, tempRot) as GameObject;
            AddScore (1);
            if (score >= 4)
            {
                Application.LoadLevel ("VictoryScreen");
            }
        }

        if ((col.gameObject.tag != "Player")&&(col.gameObject.tag != "PlayPart")) 
        {
                // destroy self bullet
                Destroy (this.gameObject);
        }

    }

【问题讨论】:

  • 我不明白什么不起作用以及您期望什么作为答案。你能告诉我们更多吗?你也说“每次发生碰撞”,触发器和碰撞是不一样的。你确定这是你想做的吗?
  • 我认为这是一个触发器,对不起,我对 Unity 有点陌生。问题是,分数变量始终为 0,或者看起来如此,因为屏幕永远不会改变,即使通过触发器工作(与触发器相关的所有其他事情都发生在游戏本身中。感谢您的响应。
  • 您是否尝试使用 Debug.Log 显示您的 score 变量以确保它的值(在 AddScore 之后和 AddScore 中的增量之后)?
  • 值没有被修改,我已经这样做了,这就是问题所在。如果我将所需的值设置为 1,则屏幕会正确更改,但任何超过该值的值最终都会出现问题。就像每次触发发生时值都会重置一样。
  • 问题是脚本被附加到一个一直被销毁的游戏对象(“子弹”),所以在改变之后一切都是求解器:)谢谢大家的帮助!跨度>

标签: c# unity3d counter


【解决方案1】:
    if ((col.gameObject.tag != "Player")&&(col.gameObject.tag != "PlayPart")) 
    {
            // destroy self bullet
            Destroy (this.gameObject);
    }

这可能是罪魁祸首。只要上述条件不成立,您就会破坏“这个”。这个脚本在子弹上吗?如果是这样,您需要将评分机制移动到不会被破坏的对象或使其成为静态变量。我不喜欢静态变量,但这是一个可能的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多