NullReferenceException在Unity中使用ScriptableObjects

问题描述

我在数据库中设置了一个名为“ Card”的Scriptable对象,并试图在可脚本对象中列出这些项目的可搜索列表。我将CardDatabase脚本附加到一个名为_CardDatabase的空游戏对象上。我不确定我是否将其附加错误在这里做错了什么。

我仍然遇到以下错误

NullReferenceException:对象引用未设置为对象的实例 CardDatabase.GetCardByID(System.String abbr)(位于Assets / Scripts / CardDatabase.cs:33)

// CardDatabase.cs

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

 public class CardDatabase : MonoBehavIoUr
    {
        public CardList cards;
        private static CardDatabase instance;
    
    
        private void Awake()
        {
            if (instance = null)
            {
                instance = this;
                DontDestroyOnLoad(gameObject);
            }
            else
            {
                Destroy(gameObject);
            }
        }
    
    
        public static Card GetCardByID(string abbr)
        {
            return instance.cards.AllCards.FirstOrDefault(i=> i.abbr == abbr);
        }
    }

// CardList.cs

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

[CreateAssetMenu(fileName = "New Cards Database",menuName = "Cards Database")]
public class CardList : ScriptableObject
{
    public List<Card> AllCards;

}

Screenshot of inspectors

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)