2
게임용 구성 요소 엔티티 시스템을 작성 중이며 약간의 도로 블록을 쳤습니다. 엔티티의 모든 구성 요소가 포함 된 List<Component>
파생 클래스 호출 ComponentList가 있습니다. 또한 GetComponent라는 구성 요소를 반환하는 메서드가 있습니다. 문자열 이름으로이 작업을 수행합니다. 다시 밖으로 당겨 다음, ComponentList로 고집 구성 요소에서 클래스를 파생 할 때 목록에서 특정 유형을 반환하십시오.
public Component GetComponent(string name)
{
foreach (var c in this)
{
if (c.Name == name)
return c;
}
throw new Exception("Component " + name + " does not exist.");
}
그러나, 나는 약간의 불편이 유형에 캐스팅해야합니다. 경우에도 적용이 상황에,
TestComponent t1 = (TestComponent)Entity.ComponentList.GetComponent("Test1");
나는 < T와 유형을 몇 가지 특별한 마술 방법이 알고>하지만 난 그것을 사용하는 방법을 잘 모르겠어요 나. 어떠한 제안?
이것은 좋아 보인다! 내가 진짜 빨리 확인하자 :) – redcodefinal
그것은 나에게이 오류를 준다. 암시 적으로 'ConsoleApplication1.Component'유형을 'T'로 변환 할 수 없다. 명시 적 변환이 존재합니다 (캐스트가 누락 되었습니까?) – redcodefinal
오른쪽 캐스트가 없습니다. 결정된. –