본문 바로가기

UNITY/PROJECT6

프로퍼티와 public 필드의 차이점 예시) 값에 따라 NavMeshAgent의 이동속도를 조절하기 위한 프로퍼티 정의private bool _isPatrolling;public bool isPatrolling { get { return _isPatrolling; } set { _isPatrolling = value; if (_isPatrolling) { agent.speed = patrollSpeed; MoveWayPoint(); } } }get의미: get 접근자는 프로퍼티의 값을 읽을 때 사용됩니다.작동 방식: get 블록 안의 코드는 프로퍼티를.. 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.
캐릭터 이동 방식의 장단점 _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.
Input.GetAxis와 Input.GetAxisRaw Input.GetAxis와 Input.GetAxisRaw `Input.GetAxis`와 `Input.GetAxisRaw`는 Unity에서 사용자 입력을 처리할 때 사용되는 메서드입니다. 두 메서드는 입력 값을 반환하지만, 몇 가지 중요한 차이점이 있습니다. 1. 입력의 부드러움 (Smoothing) - Input.GetAxis: 입력 값을 부드럽게 변화시킵니다. 예를 들어, 사용자가 조이스틱을 천천히 움직이면 반환되는 값도 천천히 변화합니다. 이는 플레이어의 움직임을 좀 더 자연스럽게 만듭니다. - Input.GetAxisRaw: 입력 값을 즉각적으로 반환합니다. 조이스틱이나 키보드를 눌렀을 때, 값이 즉시 -1, 0, 1로 변합니다. 이 방법은 입력에 대한 반응이 더 빠르지만, 부드럽지 않을 수 있습니.. 2024. 10. 7.