Exemplo n.º 1
0
    IEnumerator RightFloorText()
    {
        PlaceInfoUI placeUI = FindObjectOfType <PlaceInfoUI>();

        placeUI.TextOn(InfoText);
        yield return(StartCoroutine(placeUI.TextFadeInRoutine()));

        yield return(new WaitForSeconds(1.0f));

        yield return(StartCoroutine(placeUI.TextFadeOutRoutine()));

        yield break;
    }
Exemplo n.º 2
0
    // //////////////////////////////////////
    //
    // 카메라 기본 기능들
    //
    // //////////////////////////////////////

    /// <summary>
    /// 상하단 뷰포트 교환
    /// "뷰포트 교환" 이기 때문에 좌표만 교환됩니다.
    /// 카메라 자체가 교환되는것이 아님
    /// </summary>
    public void changeViewport()
    {
        Debug.Log("상 하단 뷰포트 교체");

        Rect tempRt;

        tempRt            = playerCamera.rect;
        playerCamera.rect = beyondCamera.rect;
        beyondCamera.rect = tempRt;
        PlaceInfoUI placeUI = FindObjectOfType <PlaceInfoUI>();

        placeUI.objInfoText.transform.localPosition =
            new Vector3(placeUI.objInfoText.transform.localPosition.x,
                        placeUI.objInfoText.transform.localPosition.y * -1,
                        placeUI.objInfoText.transform.localPosition.z);
    }
Exemplo n.º 3
0
    // 계단 이동시 시행될 전체 업데이트
    private IEnumerator StairMoveTeleport()
    {
        Animator animator = TeleportCharacter.GetComponent <Animator>();

        // 캐릭터 애니메이터 걷기 세팅
        animator.SetBool("IsWalk", true);
        Vector2 desCoord;

        desCoord.x = this.transform.position.x;
        desCoord.y = TeleportCharacter.transform.position.y;

        // 캐릭터 방향 설정
        Vector3 dirVec;

        if (TeleportCharacter.transform.position.x < this.transform.position.x)
        {
            dirVec = new Vector3(-1, 1, 1);
        }
        else
        {
            dirVec = new Vector3(1, 1, 1);
        }

        while (true)
        {
            // 캐릭터 좌표 이동. 1.0f의 속도로.
            TeleportCharacter.transform.position = Vector2.MoveTowards(TeleportCharacter.transform.position, desCoord, 0.5f * Time.deltaTime);


            TeleportCharacter.transform.localScale   = dirVec;
            characterMover.Icon.transform.localScale = new Vector3(dirVec.x, 1, 1);

            // 도착시
            if (TeleportCharacter.transform.position.x == this.transform.position.x)
            {
                // 애니메이터 뒷모습으로 전환
                animator.SetBool("IsWalk", false);
                animator.SetBool("IsDoorIn", true);

                // 1.5초 뒤 이동, 이동타입 회복, 뷰포트전환
                yield return(new WaitForSeconds(1.0f));

                //TeleportCharacter.SetActive(false); // ★
                TeleportCharacter.GetComponent <SpriteRenderer>().enabled = false;
                yield return(new WaitForSeconds(0.5f));


                // 카메라슬로우 무브 상태로 세팅한 후
                cameraSystem.SetSlowMove(Destination.transform.position.x, Destination.transform.position.y);

                PlaceInfoUI placeUI = FindObjectOfType <PlaceInfoUI>();
                placeUI.TextOn(InfoText);
                yield return(StartCoroutine(placeUI.TextFadeInRoutine()));

                // 코루틴 내부의 코루틴 생명주기 파악 필요함
                yield return(StartCoroutine("CamWaitTeleport"));

                // 애니메이터 IDLE로 회복
                animator.SetBool("IsDoorIn", false);
                animator.SetBool("IsWalk", true);

                yield return(new WaitForSeconds(1.0f));

                yield return(StartCoroutine(placeUI.TextFadeOutRoutine()));

                //yield return StartCoroutine(FindObjectOfType<PlaceInfoUI>().TextFadeRoutine(InfoText));

                yield break;
            }
            yield return(null);
        }
    }