// Use this for initialization
    private IEnumerator Start()
    {
        waitingforReply = false;
        Initialized     = false;
        AssetManager.Instance.Bridge = new AssetManagerBridge();

        m_dialogController.AddDialogLine("Loading...");

        alreadyUsedDialogs = new Dictionary <string, string>();

        var streamingAssetsPath = Application.streamingAssetsPath;

#if UNITY_EDITOR || UNITY_STANDALONE
        streamingAssetsPath = "file://" + streamingAssetsPath;
#endif

        var www = new WWW(streamingAssetsPath + "/scenarioList.txt");
        yield return(www);

        if (!string.IsNullOrEmpty(www.error))
        {
            m_dialogController.AddDialogLine("Error: " + www.error);
            yield break;
        }

        var entries = www.text.Split(new[] { "\n", "\r\n" }, StringSplitOptions.None);
        if ((entries.Length % 2) != 0)
        {
            m_dialogController.AddDialogLine("Error: Scenario entries must in groups of 2 to identify the scenario file, and TTS directory");
            yield break;
        }

        {
            List <ScenarioData> data = new List <ScenarioData>();

            for (int i = 0; i < entries.Length; i += 2)
            {
                var path = entries[i].Trim();
                var tts  = entries[i + 1].Trim();
                data.Add(new ScenarioData(path, tts));
            }

            m_scenarios = data.ToArray();
        }

        m_dialogController.Clear();
        LoadScenarioMenu();
    }
    // Use this for initialization
    private IEnumerator Start()
    {
        waitingforReply = false;
        Initialized     = false;
        _finalScore     = GameObject.FindGameObjectWithTag("FinalScore");
        _finalScore.SetActive(false);
        AssetManager.Instance.Bridge = new AssetManagerBridge();
        ;
        //  m_dialogController.AddDialogLine("Loading...");

        alreadyUsedDialogs = new Dictionary <string, string>();

        var streamingAssetsPath = Application.streamingAssetsPath;

        counter = 0;
#if UNITY_EDITOR || UNITY_STANDALONE
        streamingAssetsPath = "file://" + streamingAssetsPath;
#endif
        var www = new WWW(streamingAssetsPath + "/MultiCharacterScenarioList.txt");
        yield return(www);

        if (!string.IsNullOrEmpty(www.error))
        {
            m_dialogController.AddDialogLine("Error: " + www.error);
            yield break;
        }
        rpcList            = new List <RolePlayCharacterAsset>();
        m_characterAnchors = new List <Transform>();
        foreach (var anc in GameObject.FindGameObjectsWithTag("Anchor"))
        {
            m_characterAnchors.Add(anc.transform);
        }

        _agentControllers = new List <MultiCharacterAgentController>();
        justSpokeAgent    = null;

        var entries = www.text.Split(new[] { "\n", "\r\n" }, StringSplitOptions.None);
        if ((entries.Length % 2) != 0)
        {
            m_dialogController.AddDialogLine("Error: Scenario entries must in groups of 2, to identify the scenario file, and TTS directory");
            yield break;
        }

        {
            List <SingleCharacterDemo.ScenarioData> data = new List <SingleCharacterDemo.ScenarioData>();

            for (int i = 0; i < entries.Length; i += 2)
            {
                var path = entries[i].Trim();
                var tts  = entries[i + 1].Trim();
                //    Debug.Log(path  + " e " + tts);
                data.Add(new SingleCharacterDemo.ScenarioData(path, tts));
            }

            m_scenarios = data.ToArray();
        }

        _events  = new List <Name>();
        _actions = new List <IAction>();
        LoadScenarioMenu();
    }
示例#3
0
    public IEnumerator UpdateCoroutine()
    {
        while (m_rpc.GetBeliefValue(string.Format(IATConsts.DIALOGUE_STATE_PROPERTY, IATConsts.PLAYER)) != IATConsts.TERMINAL_DIALOGUE_STATE)
        {
            yield return(new WaitForSeconds(1));

            if (_body._speechController.IsPlaying)
            {
                continue;
            }

            var action = m_rpc.Decide().FirstOrDefault();

            if (action == null)
            {
                Debug.Log(RPC.CharacterName.ToString() + " decided: nothing");
            }
            else
            {
                Debug.Log(RPC.CharacterName.ToString() + " decided: " + action.Key);
            }

            _events.Clear();
            m_rpc.Update();
            UpdateEmotionExpression();
            if (action == null)
            {
                continue;
            }



            lastAction = action;
            if (action != null)
            {
                Debug.Log(RPC.CharacterName.ToString() + " decision is:" + action.Name + " towards " + action.Target);

                switch (action.Key.ToString())
                {
                case "Speak":

                    updateHeadController(action.Target.ToString());
                    GameObject.FindGameObjectWithTag(action.Target.ToString())
                    .GetComponentInChildren <HeadLookController>()._target = this._body.gameObject;


                    m_activeController.StartCoroutine(HandleSpeak(action));

                    break;

                case "Disconnect":
                    m_activeController.StartCoroutine(newHandleDisconnect());
                    m_dialogController.AddDialogLine(string.Format("- {0} disconnects -", m_rpc.CharacterName));

                    _currentCoroutine = null;
                    Object.Destroy(_body.Body);
                    break;

                default:
                    Debug.LogWarning("Unknown action: " + action.Key);
                    break;
                }
            }
        }
    }
    // Use this for initialization
    private void Start()


    {
        startingTime = DateTime.Now;

        sentencesToMatch = new List <string>();

        rand = new System.Random(10);
        if (UnityEngine.XR.XRDevice.isPresent == false)
        {
            //   Debug.Log("No VIVE detected");

            foreach (var cam in cameras)
            {
                if (cam.tag == "MainCamera")
                {
                    Debug.Log("no vr device detected");

                    SteamVR.SafeDispose();
                    UnityEngine.XR.XRSettings.enabled = false;

                    GameObject.Find("[CameraRig]").SetActive(false);
                    cam.SetActive(false);
                }
                if (cam.name == "2DCamera")
                {
                    cam.SetActive(true);
                    cam.tag = "MainCamera";
                }
            }

            vr = false;
        }
        else
        {
            vr = true;

            UnityEngine.XR.XRSettings.enabled = true;
            SteamVR.enabled = true;
        }

        Initialized = false;
        //  _finalScore = GameObject.FindGameObjectWithTag("FinalScore");
        _finalScore.SetActive(false);
        AssetManager.Instance.Bridge = new AssetManagerBridge();

        m_dialogController.AddDialogLine("Loading...");

        alreadyUsedDialogs = new Dictionary <string, string>();
        _questionsAnswers  = new Dictionary <string, string>();

        var streamingAssetsPath = Application.streamingAssetsPath;

#if UNITY_EDITOR || UNITY_STANDALONE
        streamingAssetsPath = "file://" + streamingAssetsPath;
#endif

        var www = new WWW(streamingAssetsPath + "/scenarioList.txt");
        // yield return www;

        if (!string.IsNullOrEmpty(www.error))
        {
            m_dialogController.AddDialogLine("Error: " + www.error);
            // yield break;
        }

        var entries = www.text.Split(new[] { "\n", "\r\n" }, StringSplitOptions.None);
        if ((entries.Length % 2) != 0)
        {
            m_dialogController.AddDialogLine("Error: Scenario entries must in groups of 2, to identify the scenario file, and TTS directory");
            //   yield break;
        }

        {
            List <ScenarioData> data = new List <ScenarioData>();

            for (int i = 0; i < entries.Length; i += 2)
            {
                var path = entries[i].Trim();
                var tts  = entries[i + 1].Trim();
                data.Add(new ScenarioData(path, tts));
            }

            m_scenarios = data.ToArray();
        }

        var unorganizedPaperList = GameObject.FindGameObjectsWithTag("DialogHistory").ToList();
        _paperList = unorganizedPaperList.OrderByDescending(p => p.transform.position.y).ToList();

        // _paperList = GameObject.FindGameObjectsWithTag("DialogHistory").ToList();
        currentOptions           = new List <string>();
        keyValuePairs            = new Dictionary <string, float>();
        alternativeKeyValuePairs = new Dictionary <string, float>();
        MyStringBuilder          = new StringBuilder();
        m_dialogController.Clear();
        LoadScenarioMenu();
    }