【问题标题】:How to access Values from ScriptableObjects in a List?如何从列表中的 ScriptableObjects 访问值?
【发布时间】:2019-04-22 20:55:46
【问题描述】:

我有一个技能列表 (ScriptableObjects),其中包含一个名为 Power 的变量,需要在我的 DamageFormula 中使用。目前,由于技能在列表中,Power 变量被忽略?我通过公开引用 BaseSkill(所有技能都来自的基础 ScriptableObject)并将技能直接拖到检查器的插槽中来测试它,它就是这样工作的

这不起作用 - Power = BaseSkill.Power 因为它设置它等于 BaseSkill ScriptableObject 脚本中的功率,因为​​功率值是在实际技能中设置的,所以它返回“对象未设置为和对象的实例”和“

如何将 Power Int 设置为等于列表中我的技能的 Power?

【问题讨论】:

  • 请添加您的代码。

标签: c# unity3d


【解决方案1】:

创建一个包含您技能的可编写脚本的对象。将您的技能拖放到列表中。

using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu (fileName = "SkillStore", menuName = "SkillSystem/SkillStore")]
public class SkillStore : ScriptableObject
{
public List<Skill> skills;
}

然后从 GameManager 或任何你想要的地方引用它。从层次结构中分配技能库脚本对象。

public SkillStore skillStore;

现在你可以这样调用了

int power = skillStore[skillIndex].Power;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2021-08-21
    相关资源
    最近更新 更多