Skip to content
Snippets Groups Projects
Applicant.cs 1.66 KiB
Newer Older
using TMPro;
using UnityEngine;

public class Applicant : MonoBehaviour, IChatSession
{
    [SerializeField] private TextMeshProUGUI _output;

    public string _agentName;
    public string _userName;

    public ChatSession session = null;

    public Recruiter other;

    // Start is called before the first frame update
    void Start()
    {}

    public void StartSession()
    {
        var scenario = Resources.Load<TextAsset>("ApplicantScenario").text;
        _ = ChatSessionManager.Instance.StartSession(this, _agentName, _userName, scenario);
    }

    string m = "";
    public void Chat(string message)
    {
        m = message;
        ChatSingle();
    }

    public void ChatSingle()
    {
        if (session == null)
        {
            Debug.Log("Session not yet ready or terminated");
            return;
        }
        session.ChatSingle(m);
    }

    public void EndChatSession()
    {
        if (session == null)
        {
            Debug.Log("Session not yet ready or terminated");
            return;
        }
    }


    public void OnSessionReady(ChatSession session)
    {
        this.session = session;
        Debug.Log("Applicant session ready");
        other.Chat("Hi, my name is " + _agentName + ". I am here for the job interview.");
    }

    public void OnSessionError(ChatSession session, int _)
    {
        this.session = null;
    }

    public void OnChatResponse(ChatSession session, string response)
    {
        // _output.text = response;

        other.Chat(response);
    }

    public void OnSessionEnd(ChatSession session)
    {
        session = null;
    }
}