Exemplo n.º 1
0
    private void Start()
    {
        sceneStatesFSM = GetComponent <SceneStatesFSM>();

        scene1State = new Scene1State()
        {
            FSM = sceneStatesFSM
        };

        scene2State = new Scene2State()
        {
            FSM = sceneStatesFSM
        };

        scene3State = new Scene3State()
        {
            FSM = sceneStatesFSM
        };

        scene4State = new Scene4State()
        {
            FSM = sceneStatesFSM
        };

        scene5State = new Scene5State()
        {
            FSM = sceneStatesFSM
        };

        sceneStatesFSM.changeStateTo(scene1State);
    }
Exemplo n.º 2
0
    void Awake()
    {
        scene3State = Scene3State.PrePause;
        // JudgeIsBegin = 0;
        _camera  = Camera.main;
        rig      = GetComponent <Rigidbody>();
        model    = transform.Find("player").gameObject;
        doorAnim = GameObject.Find("doorTimeline").GetComponent <PlayableDirector>();
        print(doorAnim.duration);

        Items.Clear();
        audioSource   = GetComponent <AudioSource>();
        tempscaleAnim = transform.localScale;
        if (SceneManager.GetActiveScene().name == "Scene4")
        {
            scene4Controler = transform.Find("/Enemys").GetComponent <Scene4Controler>();
        }
        isScene2AnimPlay    = false;
        isScene3Pause       = false;
        isScene4Pause       = false;
        Scene3Identifer2Num = 0;
        Scene3GetItem       = false;
    }
Exemplo n.º 3
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "door")
        {
            if (SceneManager.GetActiveScene().name == "Scene3")
            {
            }
            if (gameManager.isFinished == true)
            {
                string sceneName = SceneManager.GetActiveScene().name;

                switch (sceneName)
                {
                case "TeachingScene":
                { JsonProcess.requestJson().updateTeachState(true);
                  JsonProcess.requestJson().updateIsFirstLogin(false); } break;

                case "Scene1": JsonProcess.requestJson().updateHomeState(true); break;

                case "Scene2": JsonProcess.requestJson().updateSchoolState(true); break;

                case "Scene3": JsonProcess.requestJson().updateCompanyState(true); break;

                case "Scene4": JsonProcess.requestJson().updateHospitalState(true); break;

                default:
                    break;
                }
                gameManager.Win();
            }
        }
        else if (other.tag == "Identifer")
        {
            if (gameMode == GameMode.Teaching && SceneManager.GetActiveScene().name != "Scene4")
            {
                if (other.name == "Identifer1")
                {
                    TeachGameManager.Instance.teachBrain.routID = 0;
                    TeachGameManager.Instance.SetTeachingRobot(false, 0);
                    TeachGameManager.Instance.SetTeachingRobot(true, 0);
                    if (TeachGameManager.Instance.hitIdentiferNum == 0)
                    {
                        TeachGameManager.Instance.ShowHint("注意躲开敌人视野前进");
                        tdir = Vector3.zero;
                        TeachGameManager.Instance.hitIdentiferNum++;
                    }
                }
                if (other.name == "Identifer2")
                {
                    TeachGameManager.Instance.teachBrain.routID = 1;
                    TeachGameManager.Instance.SetTeachingRobot(false, 1);
                    TeachGameManager.Instance.SetTeachingRobot(true, 1);
                    if (TeachGameManager.Instance.hitIdentiferNum == 1)
                    {
                        TeachGameManager.Instance.ShowHint("参考灵体,躲开敌人,拿到关键发光道具", 6);
                        tdir = Vector3.zero;
                        TeachGameManager.Instance.hitIdentiferNum++;
                    }
                }
            }
            else
            {
                if (other.name == "Identifer1")
                {
                    if (SceneManager.GetActiveScene().name == "Scene3")
                    {
                        if (!Scene3GetItem)
                        {
                            for (int i = 0; i < Items.Count; i++)
                            {
                                if (Items[i].ItemName == "病危通知书")
                                {
                                    Scene3GetItem = true;
                                    Debug.Log("病危通知书");
                                    if (scene3State == Scene3State.PrePause)
                                    {
                                        dropDir      = tdir;
                                        tdir         = Vector3.zero;
                                        this.enabled = false;
                                        GameManager.Instance.Scene3Control(Items[i]); //掉落病危通知书
                                    }
                                    scene3State = Scene3State.Pause;
                                    //    Items.Remove(Items[i]); //就不设定item减少了
                                }
                            }
                        }
                    }
                    //玩家到达该点时npc朝前走
                    if (SceneManager.GetActiveScene().name == "Scene4" && gameMode == GameMode.Normal && isScene4Pause)
                    {
                        if (scene4Controler.scene4AnimState == Scene4AnimState.NotStart)
                        {
                            tdir         = Vector3.zero;
                            this.enabled = false;
                            GameManager.Instance.Scene4Control();
                        }
                        scene4Controler.scene4AnimState = Scene4AnimState.isPlaying;
                    }
                }
                if (other.name == "Identifer2")
                {
                    if (SceneManager.GetActiveScene().name == "Scene2")
                    {
                        for (int i = 0; i < Items.Count; i++)
                        {
                            if (Items[i].name == "WaterCup")
                            {
                                if (!isScene2AnimPlay)
                                {
                                    tdir         = Vector3.zero;
                                    this.enabled = false;
                                    GameManager.Instance.Scene2Control();
                                }
                                isScene2AnimPlay = true;
                            }
                        }
                    }
                    else if (SceneManager.GetActiveScene().name == "Scene3")
                    {
                        Scene3Identifer2Num++;
                        if (Scene3Identifer2Num == 2)
                        {
                            transform.Find("/Enemys/Friend").GetChild(0).GetComponent <FriendBrain>().SetGuardsAlpha(1f, true, 1f);
                        }
                    }
                }
                //if (other.name == "Identifer5"&&hasHitIdentifer5==false)
                //{
                //    ChangeTimeScale(1f);
                //    hasHitIdentifer5 = true;
                //}
            }
        }
    }