본문 바로가기

UNITY34

NavMeshAgent의 isPathStale, remainingDistance NavMeshAgent의 isPathStale  isPathStale 프로퍼티는 현재 경로가 유효한지 여부를 나타내는 Boolean 값입니다. 이 프로퍼티가 true인 경우, 에이전트가 현재 경로를 추적하는데 문제가 발생했음을 의미합니다. 예를 들어, 경로를 계산한 후 환경이 변경되거나, 목표 위치가 이동하는 경우 경로가 더 이상 유효하지 않을 수 있습니다. 이 경우, 에이전트는 새로운 경로를 계산해야 하므로, NavMeshAgent의 SetDestination() 메서드를 호출하여 새로운 목표를 설정하고 경로를 업데이트할 수 있습니다. 이를 통해 에이전트가 장애물이나 환경 변화에 적절히 대응할 수 있도록 도와줍니다. 따라서, isPathStale를 주기적으로 확인하여 경로를 갱신할 필요가 있는지 판단하.. 2024. 10. 29.
magnitude와 sqrMagnitude 둘 다 벡터의 크기를 나타내지만, 계산 방식에 차이가 있습니다.주요 차이점:성능: sqrMagnitude는 제곱근을 계산하지 않기 때문에 성능상 이점이 있습니다. 비교할 때는 sqrMagnitude를 사용하는 것이 더 효율적입니다.용도: 거리를 비교할 때 두 벡터의 sqrMagnitude를 사용하면, 거리를 구하는 것보다 빠르게 비교할 수 있습니다. 예를 들어, 두 벡터 간의 거리를 비교할 때, Vector3.Distance(a, b) 이렇게 두 프로퍼티의 차이를 이해하고 적절히 활용하면 성능을 개선할 수 있습니다. 2024. 10. 29.
Time.deltaTime Time.deltaTime은 Unity에서 프레임 간의 시간을 나타내는 값으로, 각 프레임이 렌더링되는 데 걸린 시간을 초 단위로 제공합니다. 이 값을 사용하면 게임의 움직임이나 애니메이션을 프레임 속도에 관계없이 일관되게 유지할 수 있습니다. 예를 들어, 객체의 위치를 업데이트할 때 Time.deltaTime을 곱하면, 프레임 속도에 상관없이 매끄러운 움직임을 보장할 수 있습니다. 다음은 기본적인 사용 예시입니다: void Update(){ float moveSpeed = 5f; transform.position += Vector3.forward * moveSpeed * Time.deltaTime;} 위 코드는 객체가 초당 5 유닛의 속도로 앞으로 이동하게 만듭니다. Time.deltaTim.. 2024. 10. 22.
=> 연산자 (람다 표현식) `=>` 연산자는 C#에서 람다 표현식을 정의하는 데 사용됩니다. 이는 특히 메서드, 함수, 또는 델리게이트를 간결하게 작성할 수 있게 해줍니다.  예시Func multiply = (x) => x * 2;Console.WriteLine(multiply(5)); // 10 출력 - 람다 표현식을 사용하면 코드가 더 간결하고 읽기 쉬워지며, 특히 함수를 인라인으로 작성할 때 유용합니다. 2024. 10. 21.
캐릭터 이동 방식의 장단점 _rigidbody.MovePosition(transform.position + moveVector * _moveSpeed * Time.fixedDeltaTime); playerObject.transform.position += playerSpeed * Time.deltaTime * _playerMoveVector3;   유니티에서 캐릭터를 움직일 때, (1)과 (2) 방법 각각의 장단점이 있습니다.(1) playerObject.transform.position += playerSpeed * Time.deltaTime * _playerMoveVector3;장점:간단하고 이해하기 쉬움.Transform 컴포넌트를 직접 조작하므로 즉각적으로 변화가 나타남.단점:물리 엔진과의 충돌 처리가 제대로 이루어지.. 2024. 10. 18.