public override void DoAnimtor() { //展示天气信息 GameObject weatherGameObject = GameObject.Find("ui/weather_show"); WeatherEdit weather = weatherGameObject.GetComponent <WeatherEdit>(); try{ Weather weatherData = JsonUtility.FromJson <RequestData <Weather> >(data).data; weather.time = weatherData.time; weather.wind_direction = weatherData.wind_direction; weather.temperature = weatherData.temperature; weather.weather = weatherData.weather; weather.air_quality = weatherData.air_quality; string bgName = weatherData.weather_bg; weather.weather_bg = Resources.Load("weather/bg/" + bgName) as Texture; string iconName = weatherData.weather_icon; weather.weather_icon = Resources.Load("weather/icon/" + iconName) as Texture; //weather.wind_direction = weatherData.data.wind.deg; }catch (Exception e) { FeedBackError(e.Message, "parse weather error"); } ControlAnim.Instance().ShowWeather(); }
// message 需要合成的message emotion表情 action 动作 protected void SpeechSynthesis(string message, string emotion, string action) { client.StartCoroutine(client.tts.Synthesis(message.Trim(), s => { if (s.Success) { _audioSource.clip = s.clip; _audioSource.Play(); _animator.SetLayerWeight(1, 1); //_animator.CrossFade("angry@sd_hmd", 0.1f); //_animator.CrossFade("Walking@loop", 0.2f); //_animator.SetBool("thinking_00", true); if (emotion != null) { _animator.CrossFade(emotion, 0.1f); } if (action != null) { _animator.CrossFade(action, 0.25f); } _startPlaying = true; Debug.Log("合成成功,正在播放,共" + _audioSource.clip.length + "s"); DoAnimtor(); // 执行ui 伴随动画 ControlAnim.Instance().ShowTips(message); // 显示顶端字幕 } else { FeedBackError(s.err_msg, GetErrorStateType()); } })); }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { ControlAnim.Instance().ShowTips(" "); } }
//说完message 话之后执行 protected override void AfterVoiceEnd() { // 说完话之后 如果舞蹈还没执行 if (!isPlayDance) { AudioClip lamusic = Resources.Load <AudioClip>(musicResId); _danceAudioSource.clip = lamusic; _danceAudioSource.Play(); ControlAnim.Instance().Dismiss6(); Debug.Log("开始跳舞"); _animator.CrossFade(danceResId, 0.2f); isPlayDance = true; } }
public override void DoBeforeLeaving() { base.DoBeforeLeaving(); ControlAnim.Instance().Show6(); isPlayDance = false; _animator.CrossFade("stand", 0.1f); _animator.CrossFade("default", 0.15f); _danceAudioSource.Stop(); //GameObject.Find("SD_unitychan_humanoid").transform.position = new Vector3(0,0,0); //GameObject.Find("SD_unitychan_humanoid").transform.localScale = new Vector3(1,1,1); //GameObject.Find("SD_unitychan_humanoid").transform.rotation =Quaternion.Euler(0, 180, 0); }
public override void Act(GameObject gameObject, GameObject npc) { if (_startPlaying) { if (!_audioSource.isPlaying) { _startPlaying = false; _animator.CrossFade("stand", 0.25f); _animator.CrossFade("default", 0.15f); //ws.Send(System.Text.Encoding.UTF8.GetBytes("Duration: " + _audioSource.clip.length + "s")); Debug.Log("播放完毕"); ControlAnim.Instance().ShowTips(""); AfterVoiceEnd(); } } }
public override void DoAnimtor() { base.DoAnimtor(); //展示天气信息 GameObject constellationGameObject = GameObject.Find("ui/constellations_luck"); if(constellationGameObject!=null){ ConstellationEdit constellationEdit = constellationGameObject.GetComponent<ConstellationEdit>(); try { Constellation constellation = JsonUtility.FromJson<RequestData<Constellation>>(data).data; constellationEdit.loveLuckStar = constellation.loveLuckStar; constellationEdit.careerLuckStar = constellation.careerLuckStar; constellationEdit.moneyLuckStar = constellation.loveLuckStar; constellationEdit.totalLuckStar = constellation.totalLuckStar; constellationEdit.title = constellation.title; constellationEdit.type = constellation.type; constellationEdit.luckNumber = constellation.luckNumber; constellationEdit.luckColor = constellation.luckColor; constellationEdit.starConstellation = constellation.starConstellation; constellationEdit.constellationName = constellation.name; constellationEdit.constellationDate = constellation.date; constellationEdit.descriptionText = constellation.descriptionText; ControlAnim.Instance().ShowConstellation(); } catch (Exception e) { FeedBackError(e.Message, "error"); Debug.LogError(e.Message); } } }
public override void DoBeforeLeaving() { base.DoBeforeLeaving(); ControlAnim.Instance().DissmissWeather(); }
void ProcessRequest(string data) { ExecuteOnMainThread.Enqueue(() => { var reqType = JSON.Parse(data)["type"].Value; checkOptions(data); if ("server_state".Equals(reqType)) { RequestData <ServerStateData> mSerStateData = JsonUtility.FromJson <RequestData <ServerStateData> >(data); if (ServerStateData.Order_Listening.Equals(mSerStateData.data.state)) { ControlAnim.Instance().ShowMicrophone(); } else { ControlAnim.Instance().DismissMicrophone(); } } else if ("stt".Equals(reqType)) { RequestData <STTData> mStt = JsonUtility.FromJson <RequestData <STTData> >(data); ControlAnim.Instance().ShowTips(mStt.data.text); } else if (FSMSystem.Instance().CurrentStateID == StateID.SleepStateId && reqType != "awake") { var response = new ResponseData(); response.message = "can not do " + reqType + " when unity sleep"; response.type = "sleep"; ws.Send(JsonUtility.ToJson(response)); return; } else //状态改变 { switch (reqType) { case "weather": FSMSystem.Instance().PerformTransition(PersonState.ShowWeather, data); break; case "horoscope": FSMSystem.Instance().PerformTransition(PersonState.ShowConstellation, data); break; case "awake": FSMSystem.Instance().PerformTransition(PersonState.Awake, data); break; case "chat": FSMSystem.Instance().PerformTransition(PersonState.Chat, data); break; case "music": FSMSystem.Instance().PerformTransition(PersonState.Music, data); break; case "stop": FSMSystem.Instance().PerformTransition(PersonState.Stop, data); break; case "sleep": FSMSystem.Instance().PerformTransition(PersonState.Sleep, data); break; case "dance": FSMSystem.Instance().PerformTransition(PersonState.Dance, data); break; default: FSMSystem.Instance().PerformTransition(PersonState.Idle, data); var response = new ResponseData(); response.message = "can not parse state"; response.type = "error"; ws.Send(JsonUtility.ToJson(response)); break; } } }); }
public override void DoBeforeLeaving() { base.DoBeforeLeaving(); ControlAnim.Instance().DismissConstellation(); }