unity3d - NullReferenceException 在 Unity 中使用 ScriptableObjects
问题描述
我在名为“Card”的数据库中设置了一个 Scriptableobject,并试图在 Scriptableobject 中创建这些项目的可搜索列表。我将 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;
}
解决方案
推荐阅读
- javascript - 反应:错误:重新渲染太多。React 限制渲染次数以防止无限循环
- django - 在 Django 中切片 TextField() 的内容
- c# - 如何创建 Unity3d Cinemachine 3rd 人移动滑动相机?
- python - 你将如何在 pygame 中添加碰撞?
- python - 如何从 SLP 协议中获取服务?
- azure - 如何在开发过程中同意 Azure Active Directory 企业应用程序进行多租户登录而无需发布者批准?
- java - 在 Spring HandlerInterceptor 中返回 ReponseEntity
- html - 在移动设备上查看时,我的网页在页面底部显示字段集,但在桌面上查看时正确显示
- c# - UWP Grid Splitter 总是粘在鼠标上
- bash - 为什么虚拟终端在 Gnome 终端工作时会在 eval 上抛出错误?