/// <summary>播放单个语音</summary> private void PlaySound(IListenerTracker listener) { string name = null; name = listener.OnGetCurrentTransform().name.ToLower(); PlayUnit playUnit = null; //获取卡牌类型 //不是字母的话播放双语 if (listener.Type != TrackerType.LETTER) { string pare = null; //先去小库(500个单词)里找解释 if (ContentHelper.Instance.units.ContainsKey(name)) { WordUnit unit = ContentHelper.Instance.units[name]; pare = unit.Parephrase; } else//去词典里找解释 { pare = ContentHelper.Instance.GetPare(name); } playUnit = new Bilingual(name, pare); } else//只播放声音(非双语) { playUnit = new SingleTone(name); } AudioManager.Instance.SetUnits(playUnit); }
void PlaySound(string name) { Bilingual playUnit = null; //获取卡牌类型 //不是字母的话播放双语 string pare = null; //先去小库(500个单词)里找解释 if (ContentHelper.Instance.units.ContainsKey(name)) { WordUnit unit = ContentHelper.Instance.units[name]; pare = unit.Parephrase; } else//去词典里找解释 { pare = ContentHelper.Instance.GetPare(name); } if (name.Contains("-")) { name = name.Replace("-", " "); } playUnit = new Bilingual(name, pare); //AudioManager.Instance.PlayBilingual(playUnit); playUnit.Play(); //AudioManager.Instance.SetUnits(playUnit); }
private GameObject effect;//特效 public void OnChanged(List <IListenerTracker> trackers) { if (listeners != null) { OnReset(listeners); } string word = ""; for (int i = 0; i < trackers.Count; i++) { word += trackers[i].OnGetCurrentTransform().name; } string name = word.ToLower(); if (name.Length > 1 && ContentHelper.Instance.FindWordInDictByName(name)) { if (name.Length > 5) { UIManager.Instance.SetVisible(UIName.UISceneHint, true); //UISceneHint.Instance.SetBullet("Image_bullet2"); UISceneHint.Instance.ShowStatementHint("long"); } //展示单词 //Vector3 sum = Vector3.zero; Vector3 sumChild = Vector3.zero; for (int i = 0; i < trackers.Count; i++) { //sum += trackers[i].GetRelativePos(); sumChild += trackers[i].OnGetChildTransform().position; } parent = trackers[trackers.Count / 2].OnGetCurrentTransform(); //center = sum / (float)trackers.Count; centerChild = sumChild / (float)trackers.Count; Effects.Instance.GetEffect("explode_model", (obj) => { if (name.Length <= 5) { AudioManager.Instance.PlayUnitReset();//清空播放队列 for (int i = 0; i < trackers.Count; i++) { var child = trackers[i].OnGetChildTransform(); child.gameObject.SetActive(false); string currName = trackers[i].OnGetCurrentTransform().name.ToLower(); AudioManager.Instance.SetUnits(new SingleTone(currName)); } } if (obj == null) { Debug.LogError("没有此特效,需要添加!"); return; } effect = obj; if (!effect.activeSelf) { effect.SetActive(true); } effect.transform.position = centerChild; effect.transform.SetParent(parent); effect.transform.localRotation = Quaternion.Euler(Vector3.zero); Effects.Instance.WaitHandler(effect, () => { OnShow(name, centerChild, trackers); if (name.Length <= 5) { //播放声音 string pare = ContentHelper.Instance.GetPare(name); PlayUnit unit = new Bilingual(name, pare); AudioManager.Instance.SetUnits(unit); //准备重复队列 AudioReset.Instance.Reset(); AudioReset.Instance.SetUnitList(unit); } }); }); } else//超过五张构不成单词 { if (name.Length > 5) { //AudioReset.Instance.Reset(); UIManager.Instance.SetVisible(UIName.UISceneHint, true); //UISceneHint.Instance.SetBullet("Image_bullet1"); UISceneHint.Instance.ShowStatementHint("help"); //Debug.LogError("当前字母数量已经大于5个"); } else { AudioReset.Instance.Reset(); for (int i = 0; i < name.Length; i++) { AudioReset.Instance.SetUnitList(new SingleTone(name[i].ToString())); } } } listeners = trackers; }
private void OnTriggerEnter(Collider other) { if (other.gameObject.tag.Equals("Player")) { var userInfo = other.gameObject.GetComponent <PlayerAvatar>().userInfo; if (!GameManager.isLocalGame) { if (hostOnly && !(GameManager.isHost && userInfo.isHost)) { return; } if (requiresMoreThanOnePlayerInHub && ClientInRoom.players.Count <= 1) { return; } if (userInfo.id != Client.user.id) { return; } } else if (requiresMoreThanOnePlayerInHub && FindObjectOfType <PlayerSpawnerManager>().currentJoinedPlayers <= 1) { return; } Prompt prompt = other.gameObject.GetComponentInChildren <Prompt>(); promptTargets.Add(prompt); Button btn = PromptsManager.RequestPrompt(); if (btn != null) { btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => onPressed.Invoke()); prompt.SetButton(btn); Bilingual b = prompt.btn.GetComponentInChildren <Bilingual>(); b.spanishText = spanishText; b.englishText = englishText; b.UpdateLanguage(); Image img = prompt.btn.GetComponentsInChildren <Image>()[1]; if (GameManager.isHandheld) { img.enabled = mobileSprite != null; if (mobileSprite != null) { img.sprite = mobileSprite; } } else { PlayerInput playerInput = other.GetComponent <PlayerInput>(); switch (playerInput.currentControlScheme) { case "Gamepad": img.enabled = gamepadSprite != null; img.sprite = gamepadSprite; break; case "Keyboard&Mouse": img.enabled = keyboardPlayer1Sprite != null; img.sprite = keyboardPlayer1Sprite; break; case "VirtualKeyboard": img.enabled = keyboardPlayer2Sprite != null; img.sprite = keyboardPlayer2Sprite; break; } } } } }
/// <summary> /// 播放双语 /// </summary> public void PlayBilingual(Bilingual unit = null, Action callback = null) { StartCoroutine(PlayTwice(unit.EN, unit.CN, callback, unit)); }
public void ChangeLanguage() { english = !english; Bilingual.UpdateAll(); }