首页 > 解决方案 > 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
 
        }
    }
}

标签: c#unity3dconverters

解决方案


一般不要使用资源

做了

public Item[] Items;

将它们放在普通文件夹中并通过 Inspector 引用它们!您可以通过将它们全部选中并将它们拖到 Inspector 中的Items 名称上来一次引用它们,这样您就不必一一添加它们。


如果你真的想使用资源然后要么投

Items = (Item[]) Resources.LoadAll("Items", typeof(Item));

或者更确切地说使用通用版本

Items = Resources.LoadAll<Item>("Items");

推荐阅读