공부/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 : 이전 프레임이 완료되는 데 걸린 시간 (프레임 간 시간 간격!)