가 발생합니다. m_entityComponents = 모든 엔티티 및 키 : 엔티티 개체 및 값을 가진 해당 구성 요소 목록의 사전 : 구성 요소 목록입니다.순회 내가 다음 코드가 예외
IComponents 인터페이스를 구현하는 여러 클래스가 있습니다. GetComponentType() 함수는 모든 엔티티를 반복하고 특정 유형의 엔티티 ID와 구성 요소에 대한 사전을 만듭니다.
예를 들어: 나는 위치 구성 요소가있는 모든 엔티티의 목록을 얻으려면 다음 내가 사용하는 것입니다 : 그것은 '아무튼 때문에
entityManager.GetComponentType<Location>();
내가 실행 해요 문제는 두 번째 루프 내 사전을 통해 필터링하는 것 같습니다. 대신 사전에있는 모든 구성 요소를 위치 유형으로 캐스팅하려고 시도합니다. 위치 유형은 물론 예외를 발생시킵니다. 이 코드를 어떻게 변경하여 원하는대로 처리 할 수 있습니까?
방금 시도해 본 .OfType()은 나를위한 방법 옵션이 아닙니다. 해당 기능 또는 다른 용도로 사용 설명서를 추가해야합니까? –
Kittoes0124
@Kittoes : 예, LINQ 네임 스페이스가 필요합니다. 간단히'using System.Linq; '을 추가하십시오. –
질문하기 전에 LINQ를 먼저 추가해야한다고 생각했습니다. 나는이 솔루션을 정말로 좋아합니다. 왜냐하면 저는 무엇인가를 캐스팅 할 필요가 없기 때문입니다. 위의 ChaosPandion의 해결책도 꽤 잘 해결되었습니다. 두 가지 옵션 중 어느 것이 더 안전하며이 둘 사이에 성능 차이가 있습니까? – Kittoes0124