using System.Collections; using System.Collections.Generic; using UnityEngine; public class TakeCare : MonoBehaviour { public ExpressionRecognition expressionRecognition; CarAssistant carAssistant; private void Awake() { carAssistant = FindObjectOfType(); expressionRecognition.onRecognizingExpression += ProcessExpression; } public void ProcessExpression(FaceInfo.Expression expression) { Debug.Log("处理表情:" + expression); switch (expression) { case FaceInfo.Expression.Neutral: break; case FaceInfo.Expression.Happy://播放彩蛋 carAssistant.animController.Dance(); carAssistant.expression = CarAssistant.Expression.Happy; carAssistant.chatBox.SetText("", CarAssistant.Expression.Happy); break; case FaceInfo.Expression.Sad: case FaceInfo.Expression.Disgust: case FaceInfo.Expression.Angry: //问候 StopAllCoroutines(); carAssistant.PlayPresetAudioClip(TTS.PresetAudio.LookBad); carAssistant.expression = CarAssistant.Expression.Smile; StartCoroutine(TransitionToStatusDelay(carAssistant.statusManager.listening, 2f)); break; case FaceInfo.Expression.Suprised: //问候 StopAllCoroutines(); carAssistant.PlayPresetAudioClip(TTS.PresetAudio.LookSurprised); carAssistant.expression = CarAssistant.Expression.Doubt; StartCoroutine(TransitionToStatusDelay(carAssistant.statusManager.listening, 2f)); break; case FaceInfo.Expression.Fearful: break; default: break; } } IEnumerator TransitionToStatusDelay(AssistantStatus status,float delay) { yield return new WaitForSeconds(delay); carAssistant.statusManager.MakeTransition(status); } }