//점프 코루틴 IEnumerator Jump() { bool goBreak = false; if (jumpCount > 2) { jumpCount = 0; goBreak = true; } SetIsClimbing(false); float jumpTimer = 0; float factor; float currentHeight = originObj.transform.position.y; effects[0].Play(); sm.playEffect(1); while (true) { if (goBreak || isClimbing) { break; } yield return(new WaitForFixedUpdate()); if (status.Equals(CHARACTERSTATUS.ATTACK)) { break; } status = CHARACTERSTATUS.JUMP; isGrounded = false; factor = Mathf.PI * (jumpTimer / jumpTime) * 0.5f; originObj.transform.position = new Vector3(originObj.transform.position.x, currentHeight + jumpHeight * Mathf.Sin(factor), originObj.transform.position.z); if (jumpTimer >= jumpTime) { changingGravity = defaultGravity; break; } if (isUpBlocked == true) { changingGravity = defaultGravity; break; } jumpTimer += Time.deltaTime; } status = CHARACTERSTATUS.NONE; }
private void OnBuilingButtonClicked(int pChar) { //창이 떠있는데 다른 버튼 클릭하면 리턴 if (currentWindowNum != -1) { return; } //같은 창이라면 exit if (currentWindowNum.Equals(pChar)) { OnMainFrameExit(); return; } obj_mainFrame.SetActive(true); switch (pChar) { //상점 case 0: _sm.playEffect(0); animator_main.SetTrigger("StoreOn"); _store.UpdateValue(); break; //대장간 case 1: _sm.playEffect(0); animator_main.SetTrigger("IronOn"); break; //던전 case 2: _sm.playEffect(0); animator_main.SetTrigger("DungeonOn"); break; //가방 case 3: _bag.OpenBag(); b_mainFrameExit[0].GetComponent <Image>().color = new Color(1, 1, 1, 1); b_mainFrameExit[5].gameObject.SetActive(true); b_mainFrameExit[6].gameObject.SetActive(true); break; } currentWindowNum = pChar; }