示例#1
0
    public IEnumerator TriggerDoorClose()
    {
        // If the player has not already cleared this room,
        // close the doors on entry
        if (!beenCleared)
        {
            // Close doors
            if (room.beenEntered && room.enemiesHaveSpawned && !doorsClosed)
            {
                for (int i = 0; i < doors.Length; i++)
                {
                    //Screen shake
                    ScreenShakeInfo Info = new ScreenShakeInfo();
                    Info.shakeMag          = gm.shakeMagDClose;
                    Info.shakeRou          = gm.shakeRouDClose;
                    Info.shakeFadeIDur     = gm.shakeFadeIDurDClose;
                    Info.shakeFadeODur     = gm.shakeFadeODurDClose;
                    Info.shakePosInfluence = gm.shakePosInfluenceDClose;
                    Info.shakeRotInfluence = gm.shakeRotInfluenceDClose;

                    ss.StartShaking(Info, 0.25f, 3);

                    //depth shake
                    gm.depthShaking = true;
                    gm.CameraDepthShake();

                    room.canOpen     = false;
                    room.doorsClosed = true;
                    doors[i].SetActive(true);
                }

                // Play audio
                FindObjectOfType <AudioManager>().Play("DoorClose");
            }

            yield return(new WaitForSeconds(spawnWait + 0.25f));

            canOpen = true;
        }
    }