0

我想添加到我的项目 CardSO - 一个可编写脚本的对象。我想给它起一个名字、点数和一些卡片的特殊行为。如何向 SO 字段添加功能?对于大多数卡片,它可以是空的(或者只是返回 0),我希望我可以编写一个函数来获取 List 并返回 int。有什么想法吗?

我当前的代码布局:

using UnityEngine;

[CreateAssetMenu(fileName = "CardSO", menuName = "New CardSO", order = 0)]
public class CardSO : ScriptableObject
{
    public string name;
    public int points;
    public Sprite Sprite;
    
    // public int SpecialBehavior(List<CardSO>);
}

谢谢你!

4

1 回答 1

0

好吧......只是实施它。如果您需要大多数没有它的卡片,为什么不使用基类并制作方法virtual

// Whatever shall be the default behavior
public virtual int SpecialBehavior(List<CardSO> cards) => -1;

然后制作一个特殊的卡片子类,可以使用override此方法并返回您需要的任何内容

[CreateAssetMenu]
public class SpecialCardSO : CardSO
{
    public override int SpecialBehavior (List<CardSO> cards)
    {
        // or whatever
        return cards.Length;
    }
}
于 2021-12-21T14:01:19.293 回答