122 lines
3.9 KiB
C#
122 lines
3.9 KiB
C#
using System;
|
||
using Stary.Evo;
|
||
using UnityEngine;
|
||
using UnityEngine.Android;
|
||
|
||
|
||
public class VoiceSwitchingScene : MonoBehaviour
|
||
{
|
||
#if Evo_Rokid
|
||
private String[] _sceneNames = new string[]
|
||
{
|
||
"打开第一个场景",
|
||
"打开第二个场景",
|
||
"打开第三个场景",
|
||
"打开第四个场景",
|
||
"打开第五个场景",
|
||
"打开第六个场景",
|
||
"打开第七个场景",
|
||
"打开第八个场景",
|
||
"打开第九个场景",
|
||
"打开第十个场景",
|
||
"打开第十一个场景",
|
||
"打开第十二个场景",
|
||
"打开第十三个场景",
|
||
"打开第十四个场景",
|
||
"打开第十五个场景",
|
||
"打开第十六个场景",
|
||
"打开第十七个场景",
|
||
"打开第十八个场景",
|
||
"打开第十九个场景",
|
||
"打开第二十个场景",
|
||
"打开地图测试场景"
|
||
};
|
||
|
||
private String[] _sceneNamesSpell = new string[]
|
||
{
|
||
"da kai di yi ge chang jing",
|
||
"da kai di er ge chang jing",
|
||
"da kai di san ge chang jing",
|
||
"da kai di si ge chang jing",
|
||
"da kai di wu ge chang jing",
|
||
"da kai di liu ge chang jing",
|
||
"da kai di qi ge chang jing",
|
||
"da kai di ba ge chang jing",
|
||
"da kai di jiu ge chang jing",
|
||
"da kai di shi ge chang jing",
|
||
"da kai di shi yi ge chang jing",
|
||
"da kai di shi er ge chang jing",
|
||
"da kai di shi san ge chang jing",
|
||
"da kai di shi si ge chang jing",
|
||
"da kai di shi wu ge chang jing",
|
||
"da kai di shi liu ge chang jing",
|
||
"da kai di shi qi ge chang jing",
|
||
"da kai di shi ba ge chang jing",
|
||
"da kai di shi jiu ge chang jing",
|
||
"da kai di shi er shi ge chang jing",
|
||
"da kai di tu ce shi chang jing",
|
||
};
|
||
|
||
private HybridClREntrance hybridClREntrance;
|
||
|
||
private MainDomainAll mainDomainAll;
|
||
|
||
// Start is called before the first frame update
|
||
void Start()
|
||
{
|
||
hybridClREntrance = GameObject.FindAnyObjectByType<HybridClREntrance>();
|
||
#if UNITY_EDITOR
|
||
hybridClREntrance.enabled = true;
|
||
AppConfig.OpenDomainType = OpenDomainType.Editor;
|
||
#endif
|
||
if (!Permission.HasUserAuthorizedPermission("android.permission.RECORD_AUDIO"))
|
||
{
|
||
Permission.RequestUserPermission("android.permission.RECORD_AUDIO");
|
||
}
|
||
|
||
Rokid.UXR.Module.ModuleManager.Instance.RegistModule("com.rokid.voicecommand.VoiceCommandHelper", false);
|
||
Rokid.UXR.Module.OfflineVoiceModule.Instance.ChangeVoiceCommandLanguage(Rokid.UXR.Module.LANGUAGE.CHINESE);
|
||
|
||
mainDomainAll = Resources.Load<MainDomainAll>("MainDomainAll");
|
||
for (int i = 0; i < mainDomainAll.domainAll.Length; i++)
|
||
{
|
||
if (mainDomainAll.domainAll[i].isVideo)
|
||
Rokid.UXR.Module.OfflineVoiceModule.Instance.AddInstruct(Rokid.UXR.Module.LANGUAGE.CHINESE, _sceneNames[i], _sceneNamesSpell[i],
|
||
this.gameObject.name, "OnReceive");
|
||
}
|
||
|
||
Rokid.UXR.Module.OfflineVoiceModule.Instance.Commit();
|
||
}
|
||
|
||
|
||
void OnReceive(string msg)
|
||
{
|
||
if (hybridClREntrance.enabled == false)
|
||
{
|
||
AppConfig.OpenDomainType = OpenDomainType.VIOICE;
|
||
hybridClREntrance.enabled = true;
|
||
return;
|
||
}
|
||
|
||
int index = Array.IndexOf(_sceneNames, msg);
|
||
Debug.Log($"UnityEvo:打开第{index}个语音指令");
|
||
if (index == 20)
|
||
{
|
||
StringEventSystem.Global.Send("OpenCreatZone");
|
||
}
|
||
else if (index != -1)
|
||
{
|
||
hybridClREntrance.OpenDomain(mainDomainAll.domainAll[index].domainName, OpenDomainType.VIOICE);
|
||
}
|
||
else
|
||
{
|
||
Debug.LogError("UnityEvo:不存在语音指令:" + msg + ",请检查配置文件");
|
||
}
|
||
}
|
||
|
||
public void SetPointClound()
|
||
{
|
||
AppConfig.OpenDomainType = OpenDomainType.PointCloud;
|
||
}
|
||
#endif
|
||
} |