[英]Script doesn't find class variable
我在我的 class 中創建了一個 class 並帶有變量列表
public class Achievement : MonoBehaviour
{
public static Achievement AchievementSystem;
[System.Serializable]
public class AchievementList
{
public Image icon;
public string display;
public string description;
public string ID;
public bool achieved;
}
為此,我在當前的 class 中創建了一個變量:
[SerializeField]
public AchievementList[] achievementsList;
在我的 function 中,我想獲得“已實現”的 bool var 並檢查其是否為真:
public void Notification(string ID, bool achieved)
{
Achievement achievements = achievementsList.FirstOrDefault(x => x.ID == ID);
if (achievements.achieved == achieved) {
checkachieved = true;
}
這就是我的問題。 我收到錯誤消息“成就不包含歸檔的定義”,這聽起來像是 Unity 在我的列表中找不到變量,即使我創建了一個並且應該可以輕松訪問。
您正在嘗試調用class Achievement
的變量bool achieved
。 但是bool achieved
是class AchievementList
的成員。 使用AchievementList
而不是Achievement
:
public void Notification(string ID, bool achieved)
{
AchievementList achievements = achievementsList.FirstOrDefault(x => x.ID == ID);
if (achievements.achieved == achieved) {
checkachieved = true;
}}
您應該重命名您的類以闡明其用法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.