// 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); } } }
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; } } }
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); } }
// 금고 활성화 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; } } } }
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; } } } } }
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(); } }
// 올바른 비밀 번호를 입력했는지 체크하기 위한 함수 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; } }
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; // 하나라도 선택되어 있으면 활성화. } }
public void OnClick() { GameObject.Find("Puzzle").GetComponent <Puz_Canvas_Manager>().Puzcanvas.SetActive(false); Time.timeScale = 1.0f; mouse.ChangeMouseLock(true); }