/// <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;
        }
Exemple #4
0
    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));
 }
Exemple #6
0
 public void ChangeLanguage()
 {
     english = !english;
     Bilingual.UpdateAll();
 }