c# - Unity 将对象转换为可编写脚本的对象
问题描述
如何将 Object 转换为ScriptableObject
或有更好的方法从 Resource 文件夹加载 Scriptable Objects?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
public class ItemDatabase : MonoBehaviour
{
public Object[] Items;
public Item items;
void Start()
{
Items = Resources.LoadAll("Items", typeof(Item));
foreach (var t in Items)
{
Debug.Log(t.name);
//Convert Objects to Items
}
}
}
解决方案
一般不要使用资源
做了
public Item[] Items;
将它们放在普通文件夹中并通过 Inspector 引用它们!您可以通过将它们全部选中并将它们拖到 Inspector 中的Items
名称上来一次引用它们,这样您就不必一一添加它们。
如果你真的想使用资源然后要么投
Items = (Item[]) Resources.LoadAll("Items", typeof(Item));
或者更确切地说使用通用版本
Items = Resources.LoadAll<Item>("Items");
推荐阅读
- python-3.x - 尝试跳过列表中的 unicode 值以写入树视图
- javascript - 如何使用javascript更改href值?
- javascript - 我正在尝试构建一个简单的货币转换器。我的货币兑换功能不断给我一个错误
- python - 构建“负”Z 轴低于零的 3D 图
- npm - 在 npm/yarn 工作空间中,包应该使用 src 还是 dist
- django - Django 管理器函数的简单缓存机制
- python - 为 Question 类打印的文本不是我期望的文本
- symfony - Symfony 5 - 在类别 url 中显示 id 和 slug 并在更新 slug 时通过 id 找到它
- javascript - 如何在我的主要代码之前播放视频?
- javascript - Google People Api:地址字段返回“未定义”