コード例 #1
0
ファイル: HotelSafe.cs プロジェクト: Arenios-BJ/TheMissing
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit = player.getRaycastHit();    // 플레이어 객체에서 RaycastHit 정보를 받아온다.

        if (hit.transform != null)                  // 레이가 무언가와 충돌했다면.
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (GameManager.gm.panelOpen == false)
                {
                    if (hit.transform.name == "Safe")
                    {
                        if (SafeCamera == false)
                        {
                            safe.convex = false;
                            GameObject.Find("MainCamera").GetComponent <Camera>().fieldOfView = 7;
                            GameObject.Find("MainCamera").GetComponent <Camera>().transform.LookAt(posit);
                            SafeCamera = true;
                            mouse.ChangeMouseLock(false);
                            player.ChangeMoveRotaState(false);
                        }
                    }
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.Tab))
        {
            if (GameManager.gm.panelOpen == false)
            {
                if (SafeCamera == true)
                {
                    if (unlock)
                    {
                        safe.convex = false;
                    }
                    else
                    {
                        safe.convex = true;
                    }
                    GameObject.Find("MainCamera").GetComponent <Camera>().fieldOfView = 60;
                    SafeCamera = false;
                    mouse.ChangeMouseLock(true);
                    player.ChangeMoveRotaState(true);
                }
            }
        }

        if (doorani.GetCurrentAnimatorStateInfo(0).IsName("OpenDoor"))
        {
            if (dooranicheck == true)
            {
                unlock      = true;
                safe.convex = false;
                mouse.ChangeMouseLock(true);
                dooranicheck = false;
                player.ChangeMoveRotaState(true);
            }
        }
    }
コード例 #2
0
ファイル: DoctorBook.cs プロジェクト: Arenios-BJ/TheMissing
    void Update()
    {
        RaycastHit hit = player.getRaycastHit();    // 플레이어 객체에서 RaycastHit 정보를 받아온다.

        if (hit.transform != null)                  // 레이가 무언가와 충돌했다면.
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (GameManager.gm.panelOpen == false)
                {
                    if (hit.transform.name == "DoctorBook")
                    {
                        if (BookCheck == false)
                        {
                            // 첫 번째 페이지 활성화
                            BookCanvas1.SetActive(true);
                            // 다음으로 버튼 활성화
                            NextButton.SetActive(true);
                            Page1 = true;
                            mouse.ChangeMouseLock(false);
                            Time.timeScale = 0.0f;
                            BookCheck      = true;
                            isOpened       = true;
                            SoundManager.instance.SelectSound(hit.transform.name);
                        }
                    }
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.Tab))
        {
            if (GameManager.gm.panelOpen == false)
            {
                BookCanvas1.SetActive(false);
                BookCanvas2.SetActive(false);
                BookCanvas3.SetActive(false);
                BeforButton.SetActive(false);
                NextButton.SetActive(false);
                mouse.ChangeMouseLock(true);
                Time.timeScale = 1.0f;
                BookCheck      = false;
            }
        }
    }
コード例 #3
0
ファイル: Check.cs プロジェクト: Arenios-BJ/TheMissing
    void Update()
    {
        C_Check();

        // 모든 퍼즐을 정확한 위치에 놓았다면
        if (check == true && check2 == true && check3 == true && check4 == true && check5 == true && check6 == true && check7 == true && check8 == true && check9 == true && check10 == true)
        {
            Destroy(canvas);
            Time.timeScale = 1.0f;
            mouse.ChangeMouseLock(true);
        }
    }
コード例 #4
0
    // 금고 활성화
    public void Opensafe()
    {
        RaycastHit hit = player.getRaycastHit(); // 플레이어 객체에서 RaycastHit 정보를 받아온다.

        if (hit.transform != null)               // 레이가 무언가와 충돌했다면.
        {
            if (hit.transform.name == "Lock")    //
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (GameManager.gm.panelOpen == false)
                    {
                        if (safe_canvas)
                        {
                            mouse.ChangeMouseLock(false);   // 마우스 잠금 해제.
                            safe_canvas.SetActive(true);
                            Time.timeScale = 0.0f;
                        }
                    }
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.Tab))
        {
            if (GameManager.gm.panelOpen == false)
            {
                if (safe_canvas.activeSelf)
                {
                    safe_canvas.SetActive(false);
                    mouse.ChangeMouseLock(true);
                    Time.timeScale = 1.0f;
                }
            }
        }
    }
コード例 #5
0
ファイル: Picture.cs プロジェクト: Arenios-BJ/TheMissing
    public void OpenPicture()
    {
        // 플레이어가 액자를 눌렀을 때, 그림 맞추기(미니 게임) 캔버스가 뜬다
        RaycastHit hit = player.getRaycastHit();

        if (hit.transform != null)
        {
            if (hit.transform.name == "picture")
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (GameManager.gm.panelOpen == false)
                    {
                        GameObject.Find("Puzzle").GetComponent <Puz_Canvas_Manager>().Puzcanvas.SetActive(true);
                        mouse.ChangeMouseLock(false);
                        Time.timeScale = 0.0f;
                    }
                }
            }
        }
    }
コード例 #6
0
    void Update()
    {
        // 체스 게임 중일 때(체스 게임 씬이 살아있는 동안)는 무조건 마우스 언락.
        mouse.ChangeMouseLock(false);

        Count.text    = "Count :" + Number.ToString();        //게임화면에 횟수를 나타내기위함
        TimeRule.text = string.Format("Time :{0:N2}", timer); //게임화면에 시간제한을 나타내기위함
        Stage.text    = "Stage : " + Clear.ToString();        //게임화면에 현재 스테이지를 나타내기위함
        timer        -= Time.deltaTime;                       //게임시작과함께 시간이 줄어든다.

        Board_Line();                                         //바닥을 DrawLine으로 그리는 함수
        Board_Coordinate();                                   //바닥 좌표를 받아온다.

        if (Input.GetMouseButtonDown(0))                      //마우스 왼쪽을 눌렀을때
        {
            if (GameManager.gm.panelOpen == false)
            {
                if (SelectionX >= 0 && SelectionY >= 0) //selectionX와 Y가 0이상일때
                {
                    if (SelectedChessman == null)       //selectedChessman이 null값이라면 (선택하지않았다면)
                    {
                        // Select the chessman
                        SelectChessman(SelectionX, SelectionY); //마우스로 찍은 좌표값을 SelectChessman함수로 보낸다.
                    }
                    else //null값이 아니라면 (선택되어져있다면)
                    {
                        // Move the chessman
                        MoveChessman(SelectionX, SelectionY); //마우스로 찍은 좌표값을 MoveChessman함수로 보낸다.
                    }
                }
            }
        }

        if (timer <= 0) //시간이 0보다 작거나 같으면
        {
            Defeat_ChangeScene();
        }
    }
コード例 #7
0
    // 올바른 비밀 번호를 입력했는지 체크하기 위한 함수
    void OpenCheck()
    {
        if (Pas1.transform.childCount == 0)
        {
            check1  = false;
            Okcheck = false;
        }
        // Pas1의 자식이 하나이고
        else if (Pas1.transform.childCount == 1)
        {
            // Pas1이 가진 하나의 자식의 tag가 "ONE"이라면
            if (Pas1.transform.GetChild(0).tag == "ZERO")
            {
                // 비밀번호가 입력되는 곳 첫 번째 칸은 true가 된다.
                check1 = true;
            }
        }

        if (Pas2.transform.childCount == 0)
        {
            check2  = false;
            Okcheck = false;
        }
        // Pas2의 자식이 하나이고
        else if (Pas2.transform.childCount == 1)
        {
            // Pas2가 가진 하나의 자식의 tag가 "TWO"라면
            if (Pas2.transform.GetChild(0).tag == "SIX")
            {
                // 비밀번호가 입력되는 곳 두 번째 칸은 true가 된다.
                check2 = true;
            }
        }

        // 이하 설명 같음

        if (Pas3.transform.childCount == 0)
        {
            check3  = false;
            Okcheck = false;
        }
        else if (Pas3.transform.childCount == 1)
        {
            if (Pas3.transform.GetChild(0).tag == "ONE")
            {
                check3 = true;
            }
        }

        if (Pas4.transform.childCount == 0)
        {
            check4  = false;
            Okcheck = false;
        }
        else if (Pas4.transform.childCount == 1)
        {
            if (Pas4.transform.GetChild(0).tag == "TWO")
            {
                check4 = true;
            }
        }

        // 그래서 모든 숫자가 올바르게 들어가고, 확인버튼을 눌렀다면
        if (check1 == true && check2 == true && check3 == true && check4 == true && Okcheck == true)
        {
            // '문 열림'오브젝트가 활성화 되게 된다.
            //Open.SetActive(true);
            Destroy(Safe_canvas);
            Destroy(Lock);
            Destroy(Chain);
            CabinetAni.enabled = true;
            GameObject.Find("DoorLeftGrp").tag  = "Untagged";
            GameObject.Find("DoorRightGrp").tag = "Untagged";
            Time.timeScale = 1.0f;
            mouse.ChangeMouseLock(true);
            Destroy(GameObject.Find("OpenSafe"), 2f);
            SoundManager.instance.ChainDoor_Open();
            check1  = false;
            check2  = false;
            check3  = false;
            check4  = false;
            Okcheck = false;
        }
    }
コード例 #8
0
ファイル: Inventory.cs プロジェクト: Arenios-BJ/TheMissing
    void Update()
    {
        // 게임 종료 패널이 열려있다면 이하 모든 프로세스 패스.
        if (GameManager.gm.panelOpen)
        {
            return;
        }

        // 아이템 습득.
        // 포인터(마우스커서)가 EventSystem(GUI) 위에 있지 않을 때.
        if (EventSystem.current.IsPointerOverGameObject() == false)
        {
            if (Input.GetMouseButtonUp(0))      // 마우스 '왼쪽' 버튼을 클릭했다가 떼었을 때,
            {
                ItemGain();                     // 제가 아이템을 한 번 먹어보겠습니다.
            }
        }
        // 인벤토리 열고 닫기.
        if (IsOpened == false)                                   // 인벤토리가 열려있지 않다면.
        {
            if (Input.GetKeyDown(KeyCode.I))                     // 'I'키를 눌렀을 때.
            {
                IsOpened = true;                                 // 인벤토리 체크여부를 true로 바꿔준다.
                inventoryCG.interactable   = true;               // 상호작용 활성화.
                inventoryCG.blocksRaycasts = true;               // (그래픽 == UI) 레이캐스트 충돌 활성화.
                inventoryCG.alpha          = IsOpened ? 1f : 0f; // ? <- 삼항 연산자. 조건 ? 참일 경우 : 거짓일 경우
                coItemPick = ItemPick();                         // 코루틴 함수를 IEnumerator 열거자형 변수에 담아준다.
                StartCoroutine(coItemPick);                      // 아이템 선택 작업(코루틴) 시작. ('아이템 사용'의 선결 작업)
                mouse.ChangeMouseLock(false);                    // 마우스 잠금 해제.
                Time.timeScale = 0.0f;                           // 게임을 일시 정지.
                SoundManager.instance.InvenS();
            }
        }
        else if (IsOpened == true)   // 인벤토리가 열려있다면
        {
            if (Input.GetKeyDown(KeyCode.I) || Input.GetKeyDown(KeyCode.Tab))
            {
                IsOpened                   = false; // 다시 false로 바꿔주고
                inventoryCG.alpha          = IsOpened ? 1f : 0f;
                inventoryCG.interactable   = false; // 상호작용 비활성화.
                inventoryCG.blocksRaycasts = false; // (그래픽 == UI)레이캐스트 충돌 비활성화.
                coItemPick.MoveNext();              // ItemPick 코루틴을 종료하기 위해 대기중인 yield를 강제 호출한다.

                mouse.ChangeMouseLock(true);        // 마우스 강제 잠금.
                Time.timeScale = 1.0f;              // 일시 정지를 푼다.
            }
        }


        if (Input.GetKeyDown(KeyCode.Tab))
        {
            if (GameObject.Find("Img_Map"))
            {
                GameObject.Find("Img_Map").SetActive(false);
                Time.timeScale = 1f;
            }

            if (GameObject.Find("Img_Hint"))
            {
                GameObject.Find("Img_Hint").SetActive(false);
                Time.timeScale = 1f;
            }
        }

        // 인벤토리가 열려있지 않다면 이후 작업은 실행할 필요가 없기 때문.
        if (!IsOpened)
        {
            return;
        }

        // 아무 아이템도 선택되어 있지 않거나, 플레이어가 직접적으로 사용하는 아이템이 아닐 시
        // '사용하기' 버튼 비활성화.
        if (selectedItem == null || selectedItem.name.Contains("Key") || selectedItem.name.Contains("Circle"))
        {
            usedButton.interactable = false;
        }
        else
        {
            // 선택된 아이템이 '건전지'일 경우 손전등의 사용 유무에 따른 '사용하기' 버튼 상태 설정.
            if (selectedItem.name == "Item_Battery")
            {
                if (player.m_bHasFlashlight == false)
                {
                    usedButton.interactable = false;
                    return;
                }
            }

            usedButton.interactable = true;     // 하나라도 선택되어 있으면 활성화.
        }
    }
コード例 #9
0
 public void OnClick()
 {
     GameObject.Find("Puzzle").GetComponent <Puz_Canvas_Manager>().Puzcanvas.SetActive(false);
     Time.timeScale = 1.0f;
     mouse.ChangeMouseLock(true);
 }