Ejemplo n.º 1
0
 // 搜刮尸体
 public void OnCorpseTry_Imp()
 {
     if (state == Room1State.FindingNeeded)
     {
         // TODO: 拿到了尸体C4
         state = Room1State.FindingIDCard;
         Destroy(corpse);
     }
 }
Ejemplo n.º 2
0
        // Use this for initialization
        void Start()
        {
            // 场景状态初始
            state                = Room1State.Initing;
            gameObjects          = new GameObject[gameObjectCount];
            elevator.playOnAwake = false;
            //camera = GameObject.FindWithTag("MainCamera").GetComponent<Camera>();
            //enemysList = new List<GameObject>();

            FadeInOutUtil.SetFadingState(5.0f, Util.GetCamera(), Color.black, FadeInOutUtil.FADING_STATE.FADING_IN);
        }
Ejemplo n.º 3
0
        // 改进后的函数,所有钥匙的事件分ID处理
        public void OnKeyGot_Imp(int id)
        {
            Debug.Log("id: " + id + " state: " + state);
            switch (id)
            {
            // 第一个钥匙
            case 0:
                if (state == Room1State.FindingKey1)
                {
                    Destroy(key1);
                    state = Room1State.FindingKey2;
                    AIController.instance.CreateAI(2, 0, "AIborn2", _wanderAIAgentInitParams[3]);
                    AIController.instance.CreateAI(2, 0, "AIborn2", _wanderAIAgentInitParams[4]);
                    AIController.instance.CreateAI(2, 0, "AIborn2", _wanderAIAgentInitParams[5]);
                }
                break;

            // 第二个钥匙
            case 1:
                if (state == Room1State.FindingKey2)
                {
                    Destroy(key2);
                    state = Room1State.TryingToOpenRoom;
                    AIController.instance.CreateAI(2, 0, "AIborn3", _wanderAIAgentInitParams[6]);
                    AIController.instance.CreateAI(2, 0, "AIborn3", _wanderAIAgentInitParams[7]);
                    AIController.instance.CreateAI(2, 0, "AIborn3", _wanderAIAgentInitParams[8]);
                }
                break;

            // ID卡(也当成钥匙了)
            case 2:
                if (state == Room1State.FindingIDCard)
                {
                    Destroy(IDCard);
                    state = Room1State.EscapingRoom;
                    escapeGameObject.SetActive(true);
                    escapePosition = escapeGameObject.transform.position;
                    AIController.instance.CreateAI(2, 3, "AIborn1", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn1", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn1", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn2", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn2", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn2", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn3", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn3", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn3", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn4", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn4", _trackingAIAgentInitParams[0]);
                    AIController.instance.CreateAI(2, 3, "AIborn4", _trackingAIAgentInitParams[0]);
                }
                break;
            }
        }
Ejemplo n.º 4
0
        // Update is called once per frame
        void Update()
        {
            FadeInOutUtil.UpdateState();
            switch (state)
            {
            // 场景的初始状态
            case Room1State.Initing:
                InitAllGameObject();
                subtitlesToDisplay  = subtitleInitToDisplay;
                Key1WorldPosition   = key1.transform.position;
                Key2WorldPosition   = key2.transform.position;
                CropseWorldPosition = corpse.transform.position;
                IDCardWorldPosition = IDCard.transform.position;
                //StartCoroutine(EnemyCreateRountine());
                state = Room1State.FindingKey1;

                break;

            // 玩家正在找第一个钥匙
            case Room1State.FindingKey1:

                break;

            // 玩家正在找第二个钥匙
            case Room1State.FindingKey2:

                break;

            // 玩家正准备尝试开最后一个门
            case Room1State.TryingToOpenRoom:

                break;

            // 玩家正在找必需品
            case Room1State.FindingNeeded:
                subtitlesToDisplay = subtitleOpenDoorFalseToDisplay;
                break;

            // 玩家正在找ID卡
            case Room1State.FindingIDCard:

                break;

            // 玩家正在逃离房间
            case Room1State.EscapingRoom:
                subtitlesToDisplay = subtitleEscapingToDisplay;
                break;
            }
        }
Ejemplo n.º 5
0
        // 改进后的函数,所有门的事件分ID处理
        public void OnDoorOpen_Imp(int id)
        {
            switch (id)
            {
            // 第一扇门
            case 0:
                if (state == Room1State.FindingKey1)
                {
                    Debug.Log("WindyIce");
                    doorStart.GetComponent <DoorScript>().OpenAndDestroy(10.0f, DoorScript.DoorOpenDirection.ZNegative);
                    doorStart.GetComponent <HintableObject>().DestroyThis();
                }
                break;

            // 第二扇门
            case 1:
                if (state == Room1State.FindingKey2)
                {
                    door1.GetComponent <DoorScript>().OpenAndDestroy(10.0f, DoorScript.DoorOpenDirection.XPositive);
                    door1.GetComponent <HintableObject>().DestroyThis();
                }
                break;

            // 第三扇门
            case 2:
                if (state == Room1State.TryingToOpenRoom)
                {
                    // TODO: 玩家打开门失败
                    state = Room1State.FindingNeeded;
                }
                else if (state == Room1State.FindingIDCard)
                {
                    C4Door.SetActive(true);
                    StartCoroutine(WaitForExplosion(9.0f));
                }
                break;
            }
        }