Files
plugin-library/Assets/Main/HotfixUpdateScript/Runtime/HotUpdate/Tools/VoiceSwitchingScene.cs
2025-09-02 14:15:18 +08:00

115 lines
3.6 KiB
C#

using System;
using Rokid.UXR.Module;
using Stary.Evo;
using UnityEngine;
using UnityEngine.Android;
using ModuleManager = Rokid.UXR.Module.ModuleManager;
public class VoiceSwitchingScene : MonoBehaviour
{
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",
};
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");
}
ModuleManager.Instance.RegistModule("com.rokid.voicecommand.VoiceCommandHelper", false);
OfflineVoiceModule.Instance.ChangeVoiceCommandLanguage(LANGUAGE.CHINESE);
mainDomainAll = Resources.Load<MainDomainAll>("MainDomainAll");
for (int i = 0; i < mainDomainAll.domainAll.Length; i++)
{
if (mainDomainAll.domainAll[i].isVideo)
OfflineVoiceModule.Instance.AddInstruct(LANGUAGE.CHINESE, _sceneNames[i], _sceneNamesSpell[i],
this.gameObject.name, "OnReceive");
}
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);
if (index!=-1)
{
hybridClREntrance.OpenDomain(mainDomainAll.domainAll[index].domainName, OpenDomainType.VIOICE);
}
else
{
Debug.LogError("UnityEvo:不存在语音指令:" + msg + ",请检查配置文件");
}
}
public void SetPointClound()
{
AppConfig.OpenDomainType = OpenDomainType.PointCloud;
}
}