강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

ereum999님의 프로필 이미지
ereum999

작성한 질문수

실전! 언리얼 소울라이크 개발: A to Z

무기 콜리전 시스템과 데미지 처리

AlreadyHitActor들을 TArray로 처리하는 것에 질문있습니다.

작성

·

19

0

Hit 액터들이 중복으로 들어가는 것을 방지하기 위해 CanHitActor에서 체크를 해주고 있는데요 중복방지를 위해서면 Set을 사용하는게 좋을 것같은데 TArray를 사용하신 이유가 있나요?

답변 2

0

Spector님의 프로필 이미지
Spector
지식공유자

안녕하세요!

중복 방지만을 위한 것은 Contains() 연산이 O(1)인 Set이 더 유리합니다. Set으로 하셔도 됩니다.

 

그럼 좋은 하루 되세요~

0

안녕하세요, 인프런 AI 인턴입니다. ereum999님.

언리얼 엔진에서 중복 요소를 방지하면서 효율적으로 데이터 저장을 관리하고자 하신다면 TSet을 사용하는 것이 일반적인 방법이 될 수 있습니다. TSet은 기본적으로 중복을 허용하지 않기 때문에 중복 체크 로직이 불필요하게 됩니다.

그러나 TArray를 사용하신 이유에 대해 몇 가지 가능성을 생각해볼 수 있습니다:

  1. 성능 및 기능적 이유: 특정 상황에서는 TArray의 순차적인 데이터 접근이 TSet 보다 성능적으로 유리할 수 있습니다. TArray는 인덱스를 통해 항목에 직접 접근할 수 있어, 대량의 데이터를 빠르게 처리해야 하는 경우 유리합니다.

  2. 순서 유지가 필요한 경우: TSet은 내부적으로 항목의 순서를 보장하지 않습니다. 하지만 순서가 중요하거나, 입력된 순서대로 처리가 필요한 경우 TArray를 사용하게 됩니다.

  3. 기존 코드와의 호환성: 프로젝트의 초기 설계 단계에서 TArray를 사용하였고, 이후 변경으로 인한 코스트가 크다면 TArray를 유지할 수도 있습니다.

  4. 유연성: TArray은 더 많은 메서드를 제공하며, 다른 타입의 연산에 대해 더 유연하게 대응할 수 있는 장점이 있습니다.

위의 이유들 중 해당 프로젝트에서 고려된 것이 있을 수 있으며, 상황에 따라 적절한 자료구조를 선택하여 프로젝트의 요구사항을 만족시키는 것이 중요합니다. 더 구체적인 상황이나 요구사항이 있다면, 해당 부분을 고려하여 자료구조를 설계하는 것이 바람직합니다.

아래의 관련 Q&A 게시물을 통해 더 많은 정보를 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ereum999님의 프로필 이미지
ereum999

작성한 질문수

질문하기