Example ScriptableObject implementing ExposeMember.
Shows how exposing a property can be used to validate/process user input.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
{
[CreateAssetMenuAttribute(fileName = "DefaultRank", menuName = "Soldier Objects/Rank", order = 2)]
public class Rank:ScriptableObject
{
[SerializeField]
protected string rankTitle;
[ExposeMember(tooltip = "20 Character Limit")]
public string RankTitle
{
get { return rankTitle; }
set { if (value.Length > 20)
rankTitle = value.Substring(0, 20);
else
rankTitle = value;
}
}
[ExposeMember]
public Texture2D insignia;
}
}