private Sprite GetPortraitByActorName(string actorName, Actor actor)
        {
            // Also suppress logging for Lua return Actor[].Current_Portrait.
            var originalDebugLevel = DialogueDebug.level;

            DialogueDebug.level = DialogueDebug.DebugLevel.Warning;
            string imageName = DialogueLua.GetActorField(actorName, DialogueSystemFields.CurrentPortrait).asString;

            DialogueDebug.level = originalDebugLevel;
            if (string.IsNullOrEmpty(imageName))
            {
                return((actor != null) ? actor.GetPortraitSprite(): null);
            }
            else if (imageName.StartsWith("pic="))
            {
                if (actor == null)
                {
                    return(null);
                }
                else
                {
                    return(actor.GetPortraitSprite(Tools.StringToInt(imageName.Substring("pic=".Length))));
                }
            }
            else
            {
                return(UITools.CreateSprite(DialogueManager.LoadAsset(imageName) as Texture2D));
            }
        }
        private Sprite GetPortrait(Transform character, Actor actor)
        {
            Sprite portrait = null;

            if (character != null)
            {
                portrait = GetPortraitByActorName(DialogueActor.GetActorName(character), actor);
            }
            if ((portrait == null) && (actor != null))
            {
                portrait = GetPortraitByActorName(actor.Name, actor);
                if (portrait == null)
                {
                    portrait = actor.GetPortraitSprite();
                }
            }
            return(portrait);
        }