본문 바로가기

분류 전체보기32

프로퍼티와 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.
=> 연산자 (람다 표현식) `=>` 연산자는 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.