공부/Unity

[unity/실수]Time.time과 Time.deltaTime은 혼용될 수 없다...

개발의 피 2024. 7. 17. 00:27

내가 작성했던 코드 

void Start()
    {
        animator = GetComponent<Animator>();

        Curtime = Time.time;
    }

 

안 될리가 없는데.... 이러면서 애니메이터 설정이 잘못됐는지를 한참 봤는데....

curTime이 아예 시간 측정이 되고 있지 않았다.... 

Start에선 Time.time을 쓰고, Update에선 Time.deltaTime을 쓴 나는 멍청이.... 

다음엔 타이머 기능 사용할 때 시간 종류가 같은지도 확인해주기 !  

void Update()
    {
        if (GameManager.instance.isPlay)
        {
            animator.SetBool("attack", false); // 공격 x
        }
        else
        {
            // 0.5초가 지났는지 확인 (0.5초마다 공격 시도)
            // if (Curtime + 0.5f < Time.deltaTime) // 마지막 공격 이후 0.5초가 지났는지 확인 
            if (Curtime + 0.5f < Time.time) 
            {
                Curtime = Time.time; // 현재 시간 갱신
                Debug.Log("attack o");
                animator.SetBool("attack", true);
                Mon.GetComponent<Monster>().Damage(att); // 플레이어 공격력만큼 데미지 
            }
        }
    }

 

* Time.time : 게임이 시작된 이후 경과한 시간

* Time.deltaTime : 이전 프레임이 완료되는 데 걸린 시간 (프레임 간 시간 간격!)