IEnumerator TexCtrler()
    {
        faceState  fState_crnt = faceState.idle;
        mouseState mState_crnt = mouseState.idle;

        while (true)
        {
            yield return(new WaitForSeconds(0.03f));

            // 얼굴 변경시 얼굴 코루틴 실행
            if (fState == faceState.idle && fState_crnt != fState)
            {
                fState_crnt = fState;
                IEnumerator fCorout = idleFaceCtrler();
                StartCoroutine(fCorout);
            }
            else if (fState == faceState.bling && fState_crnt != fState)
            {
                fState_crnt = fState;
                IEnumerator fCorout = blingFaceCtrler();
                StartCoroutine(fCorout);
            }
            else if (fState == faceState.smile && fState_crnt != fState)
            {
                fState_crnt = fState;
                IEnumerator fCorout = smileFaceCtrler();
                StartCoroutine(fCorout);
            }
            else if (fState == faceState.close && fState_crnt != fState)
            {
                fState_crnt = fState;
                IEnumerator fCorout = closeFaceCtrler();
                StartCoroutine(fCorout);
            }

            // 입 변경시 입 코루틴 실행
            if (mState == mouseState.idle && mState_crnt != mState)
            {
                mState_crnt = mState;
                IEnumerator mCorout = idleMouseCtrler();
                StartCoroutine(mCorout);
            }
            else if (mState == mouseState.talking && mState_crnt != mState)
            {
                mState_crnt = mState;
                IEnumerator mCorout = talkingMouseCtrler();
                StartCoroutine(mCorout);
            }
            else if (mState == mouseState.close && mState_crnt != mState)
            {
                mState_crnt = mState;
                IEnumerator mCorout = closeMouseCtrler();
                StartCoroutine(mCorout);
            }
        }
    }
Exemple #2
0
    void SwitchFace(faceState state)
    {
        switch (state)
        {
        case faceState.current:
            buttonFace.sprite = current;
            break;

        case faceState.locked:
            buttonFace.sprite = locked;
            break;

        case faceState.visited:
            buttonFace.sprite = visited;
            break;

        default:
            buttonFace.sprite = locked;
            break;
        }
    }
Exemple #3
0
 public void SetFace(faceState face)
 {
     defaultFace.SetActive(face == faceState.idle);
     sadFace.SetActive(face == faceState.sad);
     happyFace.SetActive(face == faceState.happy);
 }
    // Update : clip 확인하고 state 수정
    // IEnumerator TexCtrler : 0.03초마다 state 확인하고 코루틴 실행
    // IEnumerator ~Ctrler : 각 얼굴/입 표정 담당

    // Update is called once per frame
    void Update()
    {
        // check current animationclip
        clipInfo = mascot_animator.GetCurrentAnimatorClipInfo(0);
        clipName = clipInfo[0].clip.name;
        Fcount++;

        // 애니메이션클립이 바뀌었을때 한번만 실행
        if (clipName == "m_starthi")
        {
            if (clipName_crnt != clipName)
            {
                clipName_crnt = clipName;
                fState        = faceState.smile;
                mState        = mouseState.talking;

                parti_flower.gameObject.SetActive(true);
                parti_flower.Play();
                parti_spark.gameObject.SetActive(false);
            }
        }
        else if (clipName == "m_startwait")
        {
            if (clipName_crnt != clipName)
            {
                clipName_crnt = clipName;
                fState        = faceState.idle;
                mState        = mouseState.close;

                parti_flower.gameObject.SetActive(false);
                parti_spark.gameObject.SetActive(false);
            }
        }
        else if (clipName == "m_idlecute")
        {
            if (clipName_crnt != clipName)
            {
                clipName_crnt = clipName;
                fState        = faceState.bling;
                mState        = mouseState.idle;

                parti_flower.gameObject.SetActive(false);
                parti_spark.gameObject.SetActive(true);
                parti_spark.Play();
            }
        }
        else if (clipName == "m_run")
        {
            if (clipName_crnt != clipName)
            {
                clipName_crnt = clipName;
                fState        = faceState.smile;
                mState        = mouseState.idle;

                parti_flower.gameObject.SetActive(false);
                parti_spark.gameObject.SetActive(false);
            }
        }
        else if (clipName == "m_talk")
        {
            if (clipName_crnt != clipName)
            {
                clipName_crnt = clipName;
                fState        = faceState.close;
                mState        = mouseState.talking;

                parti_flower.gameObject.SetActive(false);
                parti_spark.gameObject.SetActive(false);
            }
        }
        else
        {
            if (clipName_crnt != clipName)
            {
                clipName_crnt = clipName;
                fState        = faceState.idle;
                mState        = mouseState.idle;

                parti_flower.gameObject.SetActive(false);
                parti_spark.gameObject.SetActive(false);
            }
        }
    }