示例#1
0
    //점프 코루틴
    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;
    }
示例#2
0
    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;
    }