【问题标题】:Unity - error CS0117: 'Score' does not contain a definition for 'score'Unity - 错误 CS0117:“分数”不包含“分数”的定义
【发布时间】:2021-10-16 05:24:49
【问题描述】:

在过去的几天里,我一直在尝试制作一个简单的飞鸟游戏。目前,我正在尝试编写一些代码,让玩家每次通过两个管道时得分都会上升。不过我遇到了一个错误,我不太确定如何解决它。这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Score : MonoBehaviour {

    public static int score = 0;

    private void Start() {
        score = 0;
    }

    private void Update() {
        GetComponent<UnityEngine.UI.Text>().text = score.ToString();
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AddScore : MonoBehaviour {

    private void OnTriggerEnter2D (Collider2D collision) {
        Score.score++; // This is the line that's giving me errors
    }
}

我得到的确切错误是 - 错误 CS0117:“分数”不包含“分数”的定义。我有点困惑的原因是因为在 Vistual Studio Code 上它实际上并没有显示任何错误。该错误仅在我尝试运行游戏时出现。

任何帮助将不胜感激。

【问题讨论】:

  • CS0117编译时间 错误 => The error only appears when I try to run the game. 我怀疑...

标签: unity3d


【解决方案1】:
error CS0117

简单来说,当您尝试引用该数据类型不存在的成员时,就会发生这种情况。

为了修复它,请删除您尝试创建的未在基类中定义的引用,或者查看类型的定义以检查该成员是否存在并将该成员用作引用。

为了更好地理解,您可以查看此文档:https://support.unity.com/hc/en-us/articles/205886966-What-is-CS0117-

您还可以将数据类型从 int 更改为 float 以获得更准确的分数。从public static int score = 0;public static float score = 0f;

【讨论】:

  • 您为什么要使用float 来获得无论如何只能以全步递增的分数 (++),这将如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-17
  • 2011-02-18
  • 1970-01-01
  • 2018-09-29
相关资源
最近更新 更多