If I were implementing this, my Enum would be
public enum Speaker
{
Speaker1,
Player,
Speaker2,
Speaker3,
Speaker4
}
This means tthat for AIConversants that use more than just SpeakerOne and Player, you’ll need to have some sort of means to identify the available speaker…
Since Speaker1 is always the AIConverant we’re interacting with and Player is… well… the player, then a simple list of alternate speakers should do the trick. Speaker2 would be alternateSpeaker[0], and so forth.
[SerializeField] List speakers = new List<string();
public void GetSpeakerName(Speaker speaker)
{
if(speaker == Speaker.Speaker1) return gameObject.name;
if(speaker == Speaker.Player) return player.name;
return speakers[((int)speaker-2)];
}