Ejemplo n.º 1
0
    public void Pickup()
    {
        if (!Locked && !PickedUp)
        {
            GetComponent <Collider>().isTrigger = true;

            this.transform.SetParent(Cam);
            this.transform.localPosition = new Vector3(0f, 0f, DistanceOffset);
            this.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);

            this.transform.GetChild(0).GetComponent <MeshRenderer>().material.SetFloat("_Unlit", 1f);

            PC.NoLook = true;
            PickedUp  = true;

            ASC.Sound = PickupSound;
            ASC.SetVolume(1f);
            ASC.Play();

            OnPickup.Invoke();
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;


            StartCoroutine(PutDown());
        }
    }
Ejemplo n.º 2
0
    //Button开始新游戏
    public void NewStartButton()
    {
        //音效
        if (m_AudioSourceController == null)
        {
            m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
        }
        m_AudioSourceController.Play("按钮", transform);

        SceneManager.LoadScene(1); //加载场景1
        Debug.Log("NewStart");
    }
Ejemplo n.º 3
0
    private IEnumerator Start()
    {
        if (this._playOnStart)
        {
            AudioSourceController audioSourceController = this._audioSourcePlayer.AquireAudioSourceController();

            //! Calling `Play` each iteration.
            do
            {
                audioSourceController.Play(
                    audioClip: this._audioClip
                    );

                yield return(new WaitForSecondsRealtime(this._audioClip.length));
            }while (this._loop);

            ObjectPool.Instance.Release(audioSourceController);

            //? How to do it without calling `Play` each iteration?
            //? Why is it not recommended in this cae?
            //!? Because you are modifything a state of an entity that has been pooled.
            //!? It sure seems an easier and a better choice, but it may lead to unexpected bugs like something playing again when it shouldn't have.

            //audioSourceController.AudioSource.loop = this._loop;

            //audioSourceController.Play(
            //	audioClip: this._audioClip
            //);

            //yield return new WaitForSecondsRealtime(this._audioClip.length);
        }
    }
Ejemplo n.º 4
0
    IEnumerator Alarm()
    {
        ASC.AS.loop = true;
        ASC.Sound   = AlarmSound;
        ASC.Play();

        WarningText.fontSize = 0.01f;
        WarningText.text     = "NIGHT OVER";

        yield return(new WaitForSeconds(3f));

        ASC.Stop();
    }
Ejemplo n.º 5
0
    private void Attack()
    {
        attackTimer = 0;
        healthTarget.TakeDamage(damage);

        // Animation && Sound
        muzleParticle.Play();
        audioSourceController.Play(shotClip);
    }
Ejemplo n.º 6
0
    public void Play(AudioSourceController source, float currentSfx)
    {
        if (clip == null || source == null)
        {
            return;
        }

        source.Play(clip, volume * currentSfx, pitch);
    }
Ejemplo n.º 7
0
    void MakeNoise()
    {
        if (ASC && !isSpeaking)
        {
            ASC.Sound = Noises[Random.Range(0, Noises.Count)];
            ASC.SetVolume(0.25f);

            ASC.Play();
        }
    }
    //public void PlayUI(AudioClip audioClip)
    //{
    //	AudioSourceController audioSourceController = ObjectPool.Instance.Aquire<AudioSourceController>(
    //		poolable: this._audioSourceControllerPrefab
    //	);

    //	audioSourceController.Play(audioClip: audioClip);
    //}

    public AudioSourceController Play(AudioClip audioClip)
    {
        AudioSourceController audioSourceController = ObjectPool.Instance.Aquire <AudioSourceController>(
            poolable: this._audioSourceControllerPrefab
            );

        audioSourceController.Play(audioClip: audioClip);

        return(audioSourceController);
    }
Ejemplo n.º 9
0
    public AudioSourceController Play()
    {
        AudioSourceController controller = AudioPoolManager.Instance.GetController();

        controller.SetSourceProperties(GetClip(), volume, pitch, loop, spacialBlend);
        controller.Category = Category;
        controller.Play();

        return(controller);
    }
Ejemplo n.º 10
0
    public void GetSkill()
    {
        AudioSourceController audioSourceController = AudioSourcesManager.ApplyAudioSourceController();

        audioSourceController.Play("修理轮椅", transform);
        m_Disable = false;
        GetComponent <ShowAndHideUI>().Show();
        GetComponent <Image>().sprite = normalSprite;
        GetComponent <Image>().color  = new Color(1f, 1f, 1f, 1f);
        transform.GetChild(0).GetComponent <Image>().color = new Color(1, 1, 1, 0);
    }
Ejemplo n.º 11
0
    public AudioSourceController Play(Vector3 position)
    {
        controller = AudioPoolManager.Instance.GetController();
        float volGen   = AudioUtils.DecibelToLinear(Volume + Random.Range(RandomVolume, 0));
        float pitchVar = (RandomPitch / 2);
        float pitchGen = AudioUtils.St2pitch(Random.Range(Pitch - pitchVar, Pitch + pitchVar));

        controller.SetSourceProperties(GetClip(), volGen, pitchGen, Loop, SpatialBlend);
        controller.SetPosition(position);
        controller.Play();
        return(controller);
    }
Ejemplo n.º 12
0
    //显示获得道具的提示:道具名、渐入并淡出时长、上下偏移量、完全显示的停留时长、完全显示时的alpha值
    public void GetShow(string itemName, float showTime = 2f, float offset = 0.4f, float holdTime = 0.2f, System.Action action = null, float alpha = 1f)
    {
        transform.Find("道具").GetComponent <Image>().sprite = itemsData.GetSpriteByItemName(itemName);
        transform.Find("符号").GetComponent <Image>().sprite = getIron;
        ShowFromTop(showTime, offset, holdTime, action, alpha);

        //音效
        if (m_AudioSourceController == null)
        {
            m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
        }
        m_AudioSourceController.Play("获得道具", transform);
    }
Ejemplo n.º 13
0
    void PlaySound(char Letter)
    {
        Letter = char.ToLower(Letter);

        for (int i = 0; i < Alphabet.Length; i++)
        {
            if (Letter == Alphabet[i])
            {
                CurrentSource.Sound = CurrentVoice.Letters[i];
                CurrentSource.SetPitch(CurrentVoice.Pitch);
                CurrentSource.Play();
            }
        }
    }
Ejemplo n.º 14
0
 public void UseSkill()
 {
     if (!m_IsCD && !m_Disable)
     {
         m_IsCD  = true;
         m_Timer = 0f;
         GetComponent <Image>().sprite = normalSprite;
         GetComponent <Image>().color  = new Color(0.5f, 0.5f, 0.5f, 1f);
         transform.GetChild(0).GetComponent <Image>().sprite = cdSprite;
         transform.GetChild(0).GetComponent <Image>().color  = new Color(0f, 0f, 0f, 0.4f);
         AudioSourceController audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
         audioSourceController.Play("冲刺", transform);
         StartCoroutine(IE_CD());
     }
 }
Ejemplo n.º 15
0
    public void CloseButton(string itemName = null)
    {
        //音效
        if (m_AudioSourceController == null)
        {
            m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
        }
        if (itemName != "收音机")
        {
            m_AudioSourceController.Play("阅读字条", transform);
        }
        else
        {
            m_AudioSourceController.Stop();
        }

        //解除禁用输入
        InputController.BanButton(false);
        InputController.BanMouse(false);

        StopCoroutine(IE_ShowButton());
        GetComponent <ShowAndHideUI>().Hide(0.5f);
        GameObject.Find("EventSystem").GetComponent <EventSystem>().enabled = true;
    }
Ejemplo n.º 16
0
 void Update()
 {
     if (!is_Cough)
     {
         last_time += Time.deltaTime;
     }
     if (last_time > interval_time)
     {
         StopMoving();
         child.GetComponent <Animator>().SetBool("IsCough", true);
         audioSourceController.Play("咳嗽", transform);
         InputController.BanButton(true);
         last_time = 0f;
         is_Cough  = true;
         Invoke("FinishCough", cough_time);
     }
 }
Ejemplo n.º 17
0
    private void Update()
    {
        if (SceneManager.GetActiveScene().buildIndex != 0)      //场景不为主菜单时
        {
            if (Input.GetKeyDown(KeyCode.Escape) && !m_IsPause) //开始暂停
            {
                //音效
                if (m_AudioSourceController == null)
                {
                    m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                }
                m_AudioSourceController.Play("按钮", transform);

                m_IsPause = true;

                /*GameObject[] UIs = GameObject.FindGameObjectsWithTag("UI");
                 * foreach (GameObject ui in UIs)
                 * {
                 *  ui.SetActive(false);
                 * }*/
                transform.Find("PauseCanvas").gameObject.SetActive(true);
                transform.Find("PauseCanvas/BackgroundPanel/HelpPanel").gameObject.SetActive(false);
                transform.Find("PauseCanvas/BackgroundPanel/MusicPanel").gameObject.SetActive(false);
                transform.Find("PauseCanvas/BackgroundPanel/BasicPanel").gameObject.SetActive(true);
                ButtonOverride[] buttonOverrides = transform.GetComponentsInChildren <ButtonOverride>();
                foreach (ButtonOverride buttonOverride in buttonOverrides)
                {
                    buttonOverride.Init();
                }

                Time.timeScale = 0f;
            }
            else if (Input.GetKeyDown(KeyCode.Escape) && m_IsPause) //取消暂停
            {
                //音效
                if (m_AudioSourceController == null)
                {
                    m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                }
                m_AudioSourceController.Play("按钮", transform);

                m_IsPause = false;
                transform.Find("PauseCanvas").gameObject.SetActive(false);

                Time.timeScale = 1f;
            }
        }
    }
Ejemplo n.º 18
0
 public void SetFrozen(bool State)
 {
     Frozen = State;
     if (Frozen)
     {
         ASC_Engine.Stop();
         SetStation(0, false);
     }
     else
     {
         ASC_Engine.Play();
         BA.FixGlass();
         if (!RadioTurnedOff)
         {
             SetStation(DefaultStation, false);
         }
     }
 }
Ejemplo n.º 19
0
    public override void OnPointerEnter(PointerEventData eventData)
    {
        //音效
        if (m_AudioSourceController == null)
        {
            m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
        }
        m_AudioSourceController.Play("按钮悬浮", transform);

        base.OnPointerEnter(eventData);
        Text text = transform.GetComponentInChildren <Text>();

        if (text)
        {
            text.fontSize = GetComponent <ButtonParameter>().fonthighlightSize;
            text.color    = GetComponent <ButtonParameter>().fontHighlightedColor;
        }
    }
Ejemplo n.º 20
0
    public void BackpackToggle()
    {
        if (transform.GetComponent <Toggle>().isOn)
        {
            transform.GetComponent <Toggle>().targetGraphic.GetComponent <Image>().sprite = on;
            transform.GetComponent <Toggle>().targetGraphic.GetComponent <Image>().color  = new Color(1, 1, 1, 1);
        }
        else
        {
            transform.GetComponent <Toggle>().targetGraphic.GetComponent <Image>().sprite = off;
            transform.GetComponent <Toggle>().targetGraphic.GetComponent <Image>().color  = new Color(0.5f, 0.5f, 0.5f, 1);
        }

        if (audioSourceController == null)
        {
            audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
        }
        audioSourceController.Play("按钮", transform);
    }
Ejemplo n.º 21
0
    void Start()
    {
        DriverMaxSpeed = Random.Range(MaxSpeedRandom.x, MaxSpeedRandom.y);
        TurnDeadZone   = Random.Range(TurnDeadZoneRandom.x, TurnDeadZoneRandom.y);
        OuterLane      = Random.Range(0f, 1f) > 0.5;

        CS             = GetComponent <CollisionSound>();
        r              = GetComponent <Rigidbody>();
        r.centerOfMass = Mass.localPosition;
        Goal.SetParent(null);
        CurrentNode       = new Road.Node();
        CurrentNode.Index = -1;

        InitTune();

        GetRoad();
        InvokeRepeating("CheckWaiting", 10f, 10f);
        InvokeRepeating("ChangeLanes", Random.Range(0f, 25f), Random.Range(10f, 25f));
        ASC_Engine.Play();
    }
Ejemplo n.º 22
0
    IEnumerator ChangeChannel(int Index, bool Static)
    {
        RadioSwapping = true;

        if (Static)
        {
            ASC_Radio.SetVolume(0.5f);
            ASC_Radio.Sound = StaticSound;
            ASC_Radio.Play();
            yield return(new WaitForSeconds(1f));

            ASC_Radio.Stop();
        }

        PlaySong();

        yield return(new WaitForSeconds(0.25f));

        RadioSwapping = false;
    }
Ejemplo n.º 23
0
    // Returns length of random clip just played
    private float PlayRandomClip(SFXScriptableObject sfxSO, Vector3 pos)
    {
        asc = GetController();
        var audioClipArraySize = sfxSO.audioClips.Length;

        if (audioClipArraySize == 0)
        {
            Debug.LogError("Please set audio clip(s) on " + sfxSO.name + " scriptable object.");
            return(0);
        }

        AudioClip clip = sfxSO.audioClips[Random.Range(0, audioClipArraySize)];

        if (asc != null)
        {
            asc.SetPosition(pos);
            asc.SetSourceProperties(clip, sfxSO.volume, sfxSO.pitch, sfxSO.loop);
            asc.Play();
        }
        return(clip.length);
    }
Ejemplo n.º 24
0
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Dog")
     {
         if (interaction_type == 0)
         {
             if (collision.contacts[0].normal.x == 1)
             {
                 transform.parent.GetComponent <Animator>().SetTrigger("Open");
                 GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().EnterPointPlane();
                 m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                 m_AudioSourceController.Play("开关门", transform);
                 GetComponent <Collider2D>().enabled = false;
                 transform.parent.Find("Gate").gameObject.SetActive(false);
                 InputController.BanMouse(true);
                 InputController.BanButton(true);
                 Invoke("CanMove", 2f);
             }
         }
     }
 }
Ejemplo n.º 25
0
    private void FireGun()
    {
        Ray ray = Camera.main.ViewportPointToRay(Vector3.one * 0.5f);
        //Debug.DrawRay(ray.origin, ray.direction * 100, Color.red, 2f);

        RaycastHit hitInfo;

        if (Physics.Raycast(ray, out hitInfo, fireRange))
        {
            var health = hitInfo.collider.GetComponent <Health>();

            if (health != null)
            {
                health.TakeDamage(damage);
            }
        }

        // Animation && Sound
        muzleParticle.Play();
        audioSourceController.Play(shotClip);
    }
Ejemplo n.º 26
0
    public void BreakGlass()
    {
        ASC_FrontGlass.SetVolume(1f);
        ASC_SideGlass.SetVolume(1f);

        ASC_FrontGlass.Sound = BreakSound;
        ASC_SideGlass.Sound  = BreakSound;

        ASC_FrontGlass.Play();
        ASC_SideGlass.Play();

        Material[] Temp = new Material[Body.materials.Length];
        for (int i = 0; i < Temp.Length; i++)
        {
            Temp[i] = Body.materials[i];
        }

        Temp[4] = Broken_Glass;

        Body.materials = Temp;
    }
Ejemplo n.º 27
0
    IEnumerator IE_ShowAndHide(float showTime, float holdTime, float alpha)
    {
        //音效
        if (m_AudioSourceController == null)
        {
            m_AudioSourceController = AudioSourcesManager.ApplyAudioSourceController();
        }
        m_AudioSourceController.Play("气泡提示", transform);

        //淡入
        float delta = Time.deltaTime / showTime; //showTime时间内渐入/淡出

        while (GetComponent <CanvasGroup>().alpha != alpha)
        {
            GetComponent <RectTransform>().position = character.position + new Vector3(xOffset, yOffset, 0);
            GetComponent <CanvasGroup>().alpha     += delta;
            if (GetComponent <CanvasGroup>().alpha > alpha)
            {
                GetComponent <CanvasGroup>().alpha = alpha;
            }
            yield return(0);
        }

        //保持完全显示
        float timer = 0f;

        while (timer < holdTime)
        {
            GetComponent <RectTransform>().position = character.position + new Vector3(xOffset, yOffset, 0);
            timer += Time.deltaTime;
            yield return(0);
        }

        //淡出
        Hide(showTime);
    }
Ejemplo n.º 28
0
    private void Update()
    {
        if (!gameObject.transform.GetChild(1).gameObject.activeInHierarchy&& interaction_type != 17)
        {
            return;
        }
        if (is_inBounds && player != null)
        {
            if (player.GetComponent <PlayerActions>().GetInteraction())
            {
                switch (interaction_type)
                {
                case 0:
                    #region 纸条
                    WaitFor(2f);
                    GetSomething("纸条");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("BackpackUI/Canvas/Note").transform.GetComponent <NoteUI>().Show("纸条", 5f);
                        GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("纸条");
                    }, 2f));
                    #endregion
                    break;

                case 1:
                    #region 罐头
                    GetSomething("罐头");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("n格漫画UI").transform.GetComponent <CartoonUI>().Show(1);
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameController.LoadScene(4);
                        }, 13f));
                    }, 1f));
                    #endregion
                    break;

                case 2:
                    m_AudioSourceController.Play("四格漫画1-3", transform);
                    break;

                case 3:
                    #region 轮椅
                    GameObject.Find("零件堆").GetComponent <Animator>().SetTrigger("Disappear");
                    itemsData.items.Add(new Item("轮椅", "", get_object.GetComponent <SpriteRenderer>().sprite));
                    GetSomething("轮椅");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("n格漫画UI").transform.GetComponent <CartoonUI>().Show(2);
                    }, 1f));
                    CameraAndCharacterController cameraController = GameObject.Find("CameraAndCharacterController").GetComponent <CameraAndCharacterController>();
                    cameraController.character_man.GetComponent <ShowAndHide>().Hide(2f);
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        ShowChairMan();
                    }, 2f));
                    transform.parent.Find("SwitchTrigger").gameObject.SetActive(true);
                    #endregion
                    break;

                case 4:
                    #region 电线开关
                    m_AudioSourceController.Play("开关", transform);
                    WaitFor(8f);
                    GameObject.Find("TrackCameraController-ElectricWire").GetComponent <TrackCameraController>().StartMove();
                    m_AudioSourceController.Play("电流", transform);
                    transform.GetChild(1).gameObject.SetActive(false);
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("漏电的电线").GetComponent <Animator>().SetTrigger("IsCut");
                        GameObject.Find("ElectricLine").SetActive(false);
                        Destroy(remind);
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            m_AudioSourceController.Stop();
                        }, 1.5f));
                    }, 4f));
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("TrackCameraController-ElectricWire").GetComponent <TrackCameraController>().Finished();
                    }, 5.5f));
                    #endregion
                    break;

                case 5:
                    break;

                case 6:
                    #region 收据
                    WaitFor(1f);
                    GetSomething("收据1");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        //GameObject.Find("BackpackUI/Canvas/Note").transform.GetComponent<NoteUI>().Show("收据1", 5f);
                        GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("收据1");
                    }, 2f));
                    #endregion
                    break;

                case 7:
                    #region 日记
                    WaitFor(1f);
                    GetSomething("日记");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("日记");
                    }, 2f));
                    #endregion
                    break;

                case 8:
                    #region 花盆
                    if (GameObject.Find("BackpackUI").GetComponent <BackpackUI>().HasItem("瓶装水"))
                    {
                        GetComponent <Collider2D>().enabled = false;
                        WaitFor(15.5f);
                        LoseSomething("瓶装水");
                        m_AudioSourceController.Play("倒水", transform);
                        zimu.Show("希望它可以快快发芽。");
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameObject.Find("n格漫画UI").transform.GetComponent <CartoonUI>().Show(4);

                            StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                            {
                                zimu.Show("好像有一本日记。");
                                transform.parent.Find("日记Trigger").gameObject.SetActive(true);
                            }, 10.5f));
                        }, 3f));
                    }
                    else
                    {
                        WaitFor(9f);
                        LoseSomething("种子");
                        zimu.Show("种子已经种下了,或许需要给它浇浇水。");
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameObject.Find("TrackCameraController-Water").GetComponent <TrackCameraController>().StartMove();
                            StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                            {
                                GameObject.Find("TrackCameraController-Water").GetComponent <TrackCameraController>().Finished();
                            }, 5f));
                        }, 2f));
                    }
                    #endregion
                    break;

                case 9:
                    #region 瓶装水
                    WaitFor(1f);
                    GetSomething("瓶装水");
                    GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("瓶装水");
                    #endregion
                    break;

                case 10:
                    #region 种子
                    WaitFor(9f);
                    GetSomething("种子");
                    GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("种子");
                    zimu.Show("捡到了一颗种子,要找个地方把它种下。");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("TrackCameraController-FlowerPot").GetComponent <TrackCameraController>().StartMove();
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameObject.Find("TrackCameraController-FlowerPot").GetComponent <TrackCameraController>().Finished();
                            transform.parent.Find("花盆Trigger").GetComponent <Collider2D>().enabled = true;
                        }, 5f));
                    }, 2f));
                    #endregion
                    break;

                case 11:
                    #region 收音机
                    WaitFor(9f);
                    GetSomething("收音机");
                    GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("收音机");
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("TrackCameraController-Battery").GetComponent <TrackCameraController>().StartMove();
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameObject.Find("TrackCameraController-Battery").GetComponent <TrackCameraController>().Finished();
                            Invoke("CanMove", 2f);
                        }, 5f));
                        transform.parent.Find("电池Trigger").GetComponent <Collider2D>().enabled = true;
                    }, 2f));
                    #endregion
                    break;

                case 12:
                    #region 电池
                    WaitFor(1f);
                    GetSomething("电池");
                    GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("电池");
                    #endregion
                    break;

                case 13:
                    #region 零件
                    #endregion
                    break;

                case 14:
                    #region 炸弹
                    WaitFor(1f);
                    GetSomething("炸弹");
                    GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("炸弹");
                    zimu.Show("一捆炸药!");
                    #endregion
                    break;

                case 15:
                    #region 电箱
                    //水坑没水
                    if (!transform.parent.Find("水坑Trigger/GetObject").GetChild(3).gameObject.activeInHierarchy)
                    {
                        WaitFor(7f);
                        GameObject.Find("TrackCameraController-Pool2").GetComponent <TrackCameraController>().StartMove();
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameObject.Find("TrackCameraController-Pool2").GetComponent <TrackCameraController>().Finished();
                            StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                            {
                                zimu.Show("电线断了...");
                            }, 1.5f));
                        }, 5f));
                        return;
                    }
                    //水坑有水并且已经摆了炸弹
                    if (transform.parent.Find("摆炸弹Trigger/GetObject").gameObject.activeInHierarchy)
                    {
                        GameObject.Find("n格漫画UI").transform.GetComponent <CartoonUI>().Show(5);
                    }
                    //水坑有水但是么有摆炸弹
                    else
                    {
                        WaitFor(7f);
                        GameObject.Find("TrackCameraController-Wall").GetComponent <TrackCameraController>().StartMove();
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            GameObject.Find("TrackCameraController-Wall").GetComponent <TrackCameraController>().Finished();
                            StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                            {
                                m_AudioSourceController.Play("电流", transform);
                                zimu.Show("电路连通了,或许可以点燃什么。");
                            }, 1.5f));
                        }, 5f));
                    }
                    #endregion
                    break;

                case 16:
                    #region 水坑
                    //包里有水
                    if (GameObject.Find("BackpackUI").GetComponent <BackpackUI>().HasItem("瓶装水"))
                    {
                        m_AudioSourceController.Play("倒水", transform);
                        LoseSomething("瓶装水");
                        GameObject.Find("TrackCameraController-Pool").GetComponent <TrackCameraController>().StartMove();
                        Transform pool = get_object.transform;
                        InputController.BanButton(true);
                        InputController.BanMouse(true);
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            if (!pool.GetChild(1).gameObject.activeInHierarchy)
                            {
                                Initial();
                                WaitFor(5f);
                                pool.GetChild(1).GetComponent <ShowAndHide>().Show(3f);
                                StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                                {
                                    GameObject.Find("TrackCameraController-Pool").GetComponent <TrackCameraController>().Finished();
                                    zimu.Show("还需要更多的水。");
                                }, 3f));
                            }
                            else if (!pool.GetChild(2).gameObject.activeInHierarchy)
                            {
                                Initial();
                                WaitFor(5f);
                                pool.GetChild(2).GetComponent <ShowAndHide>().Show(3f);
                                StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                                {
                                    GameObject.Find("TrackCameraController-Pool").GetComponent <TrackCameraController>().Finished();
                                    zimu.Show("还需要更多的水。");
                                }, 3f));
                            }
                            else if (!pool.GetChild(3).gameObject.activeInHierarchy)
                            {
                                WaitFor(11f);
                                pool.GetChild(3).GetComponent <ShowAndHide>().Show(3f);
                                StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                                {
                                    GameObject.Find("TrackCameraController-Pool").GetComponent <TrackCameraController>().Finished();
                                    //电路连通,可以开电箱
                                    transform.parent.Find("电箱Trigger").GetComponent <Collider2D>().enabled = true;
                                    GameObject.Find("TrackCameraController-ElectricityBox2").GetComponent <TrackCameraController>().StartMove();
                                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                                    {
                                        transform.parent.Find("电箱Trigger").GetChild(1).GetComponent <Animator>().SetBool("Open", true);
                                        m_AudioSourceController.Play("电流", transform);
                                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                                        {
                                            GameObject.Find("TrackCameraController-ElectricityBox2").GetComponent <TrackCameraController>().Finished();
                                            zimu.Show("只要再把电源打开。。。");
                                        }, 3f));
                                    }, 3f));
                                }, 3f));
                            }
                        }, 3f));
                    }
                    //包里没水
                    else
                    {
                        WaitFor(2f);
                        zimu.Show("或许可以想办法把这个水坑填满。");
                    }
                    #endregion
                    break;

                case 17:
                    #region 放炸弹
                    //包里没炸弹
                    if (!GameObject.Find("BackpackUI").GetComponent <BackpackUI>().HasItem("炸弹"))
                    {
                        WaitFor(2f);
                        zimu.Show("这面墙快塌了,要是有炸药什么的应该可以炸开吧。");
                        return;
                    }
                    //包里有炸弹
                    InputController.BanButton(true);
                    InputController.BanMouse(true);
                    Invoke("CanMove", 1f);
                    LoseSomething("炸弹");
                    //包里有炸弹且电路连通
                    if (transform.parent.Find("电箱Trigger").GetChild(1).GetComponent <Animator>().GetBool("Open"))
                    {
                        GameObject.Find("n格漫画UI").transform.GetComponent <CartoonUI>().Show(5);
                        return;
                    }
                    //包里有炸弹但电路不通
                    get_object.GetComponent <ShowAndHide>().Show(2f);
                    WaitFor(7f);
                    GameObject.Find("TrackCameraController-ElectricityBox").GetComponent <TrackCameraController>().StartMove();
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        GameObject.Find("TrackCameraController-ElectricityBox").GetComponent <TrackCameraController>().Finished();
                        StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                        {
                            zimu.Show("电线断了...");
                        }, 1.5f));
                    }, 5f));
                    #endregion
                    break;

                default:
                    break;
                }
            }
        }
    }
Ejemplo n.º 29
0
    // Update is called once per frame
    void Update()
    {
        interaction = false;
        InputController.GetKey();

        #region 切换视角
        if (CameraController != null && GameController.GetCharacterNumber() == 2)
        {
            int mainCamera = CameraController.GetComponent <CameraAndCharacterController>().mainCamera;
            if (mainCamera == 0 && InputController.mouseDown)
            {
                CameraController.GetComponent <CameraAndCharacterController>().mainCamera = 1;
                CameraController.GetComponent <CameraAndCharacterController>().SendMessage("ChangeCamera");
            }
            else if (mainCamera == 1 && InputController.buttonDown)
            {
                CameraController.GetComponent <CameraAndCharacterController>().mainCamera = 0;
                CameraController.GetComponent <CameraAndCharacterController>().SendMessage("ChangeCamera");
            }
        }
        else if (GameController.GetCharacterNumber() != 2)
        {
            Debug.Log("这个场景的角色不是两个,所以不能切换视角!");
        }
        #endregion

        #region 虚弱的人的移动
        if (m_state == 0)
        {
            if (InputController.left)
            {
                gameObject.GetComponent <PoorManMoving>().SendMessage("MoveLeft");
                audioSourceController.Play("人走路", transform);
            }
            else if (InputController.right)
            {
                gameObject.GetComponent <PoorManMoving>().SendMessage("MoveRight");
                audioSourceController.Play("人走路", transform);
            }
            else if (InputController.interaction)
            {
                interaction = true;
                gameObject.GetComponent <PoorManMoving>().SendMessage("StopMoving");
                audioSourceController.Stop();
                audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                return;
            }
            else
            {
                gameObject.GetComponent <PoorManMoving>().SendMessage("StopMoving");
                audioSourceController.Stop();
                audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                return;
            }
        }
        #endregion

        #region 轮椅的移动
        if (m_state == 1)
        {
            if (InputController.rush)
            {
                Skill rushSkill = GameObject.Find("技能UI/Canvas/Panel").transform.Find("技能1").GetComponent <Skill>();
                if (rushSkill.IsAble())
                {
                    if (!rushSkill.isCD)
                    {
                        rushSkill.UseSkill();
                        //audioSourceController.Play("冲刺", transform);
                        gameObject.GetComponent <ChairMoving>().SendMessage("Rush");
                    }
                }
            }
            if (InputController.left)
            {
                audioSourceController.Play("轮椅移动", transform);
                gameObject.GetComponent <ChairMoving>().SendMessage("MoveLeft");
            }
            else if (InputController.right)
            {
                audioSourceController.Play("轮椅移动", transform);
                gameObject.GetComponent <ChairMoving>().SendMessage("MoveRight");
            }
            else if (InputController.interaction)
            {
                interaction = true;
                gameObject.GetComponent <ChairMoving>().SendMessage("StopMoving");
                audioSourceController.Stop();
                audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                return;
            }
            else
            {
                gameObject.GetComponent <ChairMoving>().SendMessage("StopMoving");
                audioSourceController.Stop();
                audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                return;
            }
        }
        #endregion


        #region 健康人的移动
        if (m_state == 2)
        {
            if (InputController.left)
            {
                gameObject.GetComponent <PlayerMoving>().SendMessage("IsMoving", true);
                gameObject.GetComponent <PlayerMoving>().SendMessage("MoveLeft");
                audioSourceController.Play("人走路", transform);
            }
            else if (InputController.right)
            {
                gameObject.GetComponent <PlayerMoving>().SendMessage("IsMoving", true);
                gameObject.GetComponent <PlayerMoving>().SendMessage("MoveRight");
                audioSourceController.Play("人走路", transform);
            }
            else if (InputController.interaction)
            {
                interaction = true;
                gameObject.GetComponent <PlayerMoving>().SendMessage("IsMoving", false);
                audioSourceController.Stop();
                audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                return;
            }
            else
            {
                gameObject.GetComponent <PlayerMoving>().SendMessage("IsMoving", false);
                audioSourceController.Stop();
                audioSourceController = AudioSourcesManager.ApplyAudioSourceController();
                return;
            }
        }
        #endregion

        #region 狗子的移动
        if (m_state == 3)
        {
            GameObject plane  = GameObject.FindGameObjectWithTag("Plane");
            Vector3    target = new Vector3(InputController.hitPoint.x, InputController.hitPoint.y, plane.transform.position.z);
            if (InputController.right_mouseDown)
            {
                GetComponent <DogMoving>().SendMessage("JumpTo", target);
            }
            if (plane.GetComponent <Collider2D>().bounds.Contains(target))
            {
                if (InputController.left_mouseDown)
                {
                    GetComponent <DogMoving>().SendMessage("MoveTo", target);
                    interaction = true;
                }
            }
        }
        #endregion
    }
Ejemplo n.º 30
0
    private void Update()
    {
        Vector3 playerWordDir = Camera.main.WorldToScreenPoint(new Vector3(0, 0, 0f));
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, playerWordDir.z));

        switch (interaction_type)
        {
        case 1:
            if (transform.parent.GetComponent <Collider2D>().bounds.Contains(mousePosition))
            {
                if (!action_finished)
                {
                    GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().InterationPrompt();
                }
                InputController.GetKey();
                if (!dog_inBounds)
                {
                    return;
                }
                if (m_dog.GetComponent <PlayerActions>().GetInteraction() && !action_finished)
                {
                    action_finished = true;
                    m_AudioSourceController.Play("碎石", transform);
                    GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().EnterPointPlane();
                    Transform stone = transform.parent;
                    stone.GetChild(1).GetComponent <ShowAndHide>().Hide(3f);
                    stone.GetChild(2).gameObject.SetActive(true);
                    stone.GetChild(2).GetComponent <ShowAndHide>().Show(3f);
                    StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
                    {
                        m_dog.GetComponent <DogMoving>().StopMoving();
                        gameObject.SetActive(false);
                        stone.GetComponent <Collider2D>().isTrigger = true;
                    }, 3f));
                }
            }
            else
            {
                GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().EnterPointPlane();
            }
            break;

        case 3:
            if (transform.parent.GetComponent <Collider2D>().bounds.Contains(mousePosition))
            {
                if (!action_finished)
                {
                    GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().InterationPrompt();
                }
                InputController.GetKey();
                if (!dog_inBounds)
                {
                    return;
                }
                if (m_dog.GetComponent <PlayerActions>().GetInteraction() && !action_finished)
                {
                    GetSomething("零件");
                    GameObject.Find("箱子").GetComponent <Collider2D>().enabled        = false;
                    transform.parent.GetChild(2).GetComponent <Collider2D>().enabled = false;
                    GameObject.Find("BackpackUI").GetComponent <BackpackUI>().AddItem("零件");
                    GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().EnterPointPlane();
                    zimu.Show("拿到了零件!可以修理一下轮椅了。");
                    GameObject.Find("CameraAndCharacterController").GetComponent <CameraAndCharacterController>().SendMessage("LookAtMan");
                }
            }
            else
            {
                GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().EnterPointPlane();
            }
            break;

        case 4:
            if (transform.parent.GetComponent <Collider2D>().bounds.Contains(mousePosition))
            {
                GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().InterationPrompt();
            }
            else
            {
                GameObject.Find("MouseCursor").GetComponent <MouseCursorController>().EnterPointPlane();
            }
            break;

        default:
            break;
        }
    }