55 lines
2.0 KiB
C#
55 lines
2.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class TakeCare : MonoBehaviour
|
|
{
|
|
public ExpressionRecognition expressionRecognition;
|
|
CarAssistant carAssistant;
|
|
private void Awake()
|
|
{
|
|
carAssistant = FindObjectOfType<CarAssistant>();
|
|
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);
|
|
}
|
|
}
|