Having an error trying to assign classAbilities from target under OnInspectorGUI(). Error is cannot convert ClassAbilities to UnityEngine.Object. I realize it’s because ClassAbilities doesn’t inherit Monobehaviour, but I haven’t been able to find a solution for this.
[CustomEditor(typeof(ClassAbilities))]
public class ClassAbilitiesEditor : Editor
{
public override void OnInspectorGUI()
{
ClassAbilities classAbilities = target as ClassAbilities;
List<string> excludedProperties = new List<string>();
if (!classAbilities.CanUse)
excludedProperties.Add("_abilities");
if (excludedProperties.Count > 0)
DrawPropertiesExcluding(serializedObject, excludedProperties.ToArray());
else
DrawDefaultInspector();
ProcessChanges(classAbilities);
}
}
using System.Collections.Generic;
using UnityEngine;
namespace FirstGearGames.MOBAROyale.Abilities
{
[System.Serializable]
public class ClassAbilities
{
/// <summary>
/// Use CanUse.
/// </summary>
[Tooltip("True if the unit can use this weapon in the specified HandPlacements.")]
[SerializeField]
private bool _canUse = true;
/// <summary>
/// True if the unit can use this weapon in the specified HandPlacements.
/// </summary>
public bool CanUse { get { return _canUse; } }
/// <summary>
/// Use Abilities.
/// </summary>
[Tooltip("Abilities for the UnitClass using this weapon.")]
[SerializeField]
private List<Ability> _abilities = new List<Ability>();
/// <summary>
/// Abilities for the UnitClass using this weapon.
/// </summary>
public List<Ability> Abilities { get { return _abilities; } }
}
}