public void RegisterAction( PlayerAction action, UnityAction <String> onDisplayStringChanged, UnityAction <Sprite> onDisplaySpriteChanged ) { if (onDisplayStringChanged != null) { StringUnityEvent evnt = actionDisplayNameEvents.ContainsKey(action) ? actionDisplayNameEvents[action] : new StringUnityEvent(); evnt.AddListener(onDisplayStringChanged); actionDisplayNameEvents[action] = evnt; } if (onDisplaySpriteChanged != null) { SpriteUnityEvent evnt = actionDisplaySpriteEvents.ContainsKey(action) ? actionDisplaySpriteEvents[action] : new SpriteUnityEvent(); evnt.AddListener(onDisplaySpriteChanged); actionDisplaySpriteEvents[action] = evnt; } }