0

让我们使用以下代码:

public abstract class ItemTemplate : ScriptableObject
{
    public Sprite Sprite;
    public DataKeeperScript.ItemCategories ItemCategory;
    public string Name;
    [Range(0, 100)]
    public int Rarity;
}

[CreateAssetMenu(fileName = "New FoodTemplate", menuName = "ItemTemplates/Food")]
public class FoodTemplate : ItemTemplate
{
    [Range(0, 100)]
    public int HungerFillAmount;
}

当我在编辑器中创建“Weapon”scriptableObject 资产时,我还可以填写父“Item”类的属性,这很棒。

但是,当我在编辑器中为“武器”创建可编写脚本的对象资产时,为什么父“项目”类的 [范围] 属性不起作用?“武器”类本身的 HungerFillAmount 范围也不起作用。想不通。我可以在某处放置一些魔法属性以使这些属性也适用于继承的孩子吗?谢谢你和我一起思考!:)

4

2 回答 2

0

如果我将您的代码放在一个名为的文件中FoodTemplate.cs并创建一个 Food 实例,则范围属性将起作用。首先我使用了另一个文件名,然后它不起作用所以我猜这个问题与文件名错误有关?你用的是什么文件名?

在此处输入图像描述

于 2018-12-23T16:27:44.210 回答
0

它是固定的!我首先将所有子类放在一个大的 FileTemplate.cs 文件中,但这也产生了编辑器有时说找不到相关脚本的问题。现在我创建了单独的文件,所以我有 ItemTemplate.cs 用于抽象文件和子类 FoodTemplate.cs、WeaponTemplate.cs 等。我之前这样做是为了修复未找到脚本的错误,但直到现在我才看到它也解决了这个问题。

于 2018-12-23T16:34:31.703 回答