根据语音播放动作正则表达

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Text.RegularExpressions;

/// <summary>
///
/// 脚本位置:场景的_Event上
///
/// 脚本功能:根据用户输入的字符串来切换人物的动作切换
///
/// </summary>


public class ZYAnimationBasedAudio : MonoBehaviour {

public InputField USaid;//供玩家输入话语的文本框
Animation anim; //人物模型的动作动画
Text ShowLogText;//当玩家输入的话语不包含提示里的文字时,提示用户的文字信息

//初始化
void Start()
{
anim =GameObject.Find("GirlSpide").gameObject.GetComponent<Animation>();
ShowLogText = GameObject.Find("ShowText").gameObject.GetComponent<Text>();
GameObject.Find("resText").gameObject.GetComponent<Text>().text = "在下面的文本框中输入包含有“跑”、“跳”但不含有“不”字样以及含有“难过|伤心|不高兴|不开心”的文字,点击“行动”按钮,可让人物跑、跳或者难过哦!";

}

//让人物按你的要求动起来
void DoWhatUSaid(string str)
{
string hasRun = @"跑";
string hasJump = @"跳";
string hasSad= @"难过|伤心|不高兴|不开心";
string hasNo = @"不";

if (Regex.IsMatch(str, hasRun) && !Regex.IsMatch(str, hasJump) && !Regex.IsMatch(str, hasNo))
{//让人物跑起来
ShowLogText.text = "";
anim.CrossFade("run");
}
else if (Regex.IsMatch(str, hasJump) && !Regex.IsMatch(str, hasNo))
{//让人物跳起来
ShowLogText.text = "";
anim.CrossFade("jump");

}
else if (Regex.IsMatch(str, hasSad) )
{//让人物呈现难过的动作
ShowLogText.text = "";
anim.CrossFade("sad");
}
else
{//提示玩家,当前没有它需要的人物动作
ShowLogText.text = "你是外太空来的么?快点说人话!!!";
}
}

//根据玩家输入的文字话语让人物动起来
public void OnActBtnClick()
{
string textStr = USaid.text;
DoWhatUSaid(textStr);
}


//按钮切换人物动作
public void OnBtnClick(Object animName)
{
string tempStr = animName.name;
anim.CrossFade(tempStr);
}

}

posted @ 2016-09-01 10:38  Fei非非  阅读(162)  评论(0编辑  收藏  举报