2013-03-19 5 views
0

일부 변수가 들어있는 계층 구조 클래스가 들어있는이 추상 클래스가 있습니다 (unity3d는 검사기 윈도우에 Structs를 표시하지 않습니다).특정 자식에 대한 클래스 수정

이 추상 클래스에는 일부 자식이 있지만 대부분이 계층 구조 클래스가 적합하지만 그 중 하나는 적합하지 않습니다. 그래서 나는이 자식에 대해 특정 Hierarchy 클래스를 가질 수 있는지 궁금 해서요, 나머지 자식들은 여전히 ​​Hierarchy 클래스를 사용하고 있습니까?

public class Hierarchy 
{ 
public Points points; 
} 

public class Points 
{ 
public GameObject[] pointsToActivateOnCorrectAnswer; 
public GameObject[] pointsToDeactivateOnCorrectAnswer; 

public GameObject[] pointsToActivateOnWrongAnswer; 
public GameObject[] pointsToDeactivateOnWrongAnswer; 
} 
public Hierarchy hierarchy; 

보다 구체적으로, 나는 한 아이의 포인트 클래스의 내용을 수정할 아닌 다른, 그것은 가능하다?

+0

예를 들어,이 지점 클래스에는 올바른/잘못된 대답을 기반으로 활성화/비활성화 할 Points가 포함 된 다양한 배열이 있습니다. 또 다른 상황에서는 질문이 아니라 텍스트와 버튼 만있을 수 있으므로 Points 클래스는 해당 상황에 맞지 않습니다. – kUr4m4

답변

1

제네릭 클래스를 사용하는 것이 좋습니다. 이런 식으로 뭔가 ...

public class Points 
{ 
    ... 
} 

public class TextAndButton 
{ 
    ... 
} 

public class Hierarchy<T> 
{ 
    T Value { get; set; } 
    Hierarchy<T> Hierarchy { get; set; } 
} 

그래서 당신은 그냥 쉽게 Hierarchy<TextAndButton>의 인스턴스를 할 수있는 Hierarchy<Point>의 인스턴스를 사용할 수 있습니다.

+0

도움을 주셔서 감사합니다. – kUr4m4

0

주제가 아닐 수도 있지만 인터페이스의 완벽한 활용 사례처럼 보입니다. 모든 클래스 (예 : Point 클래스)는 공통 인터페이스를 구현할 수 있습니다. IChild는 계층 구조가 업데이트 또는 액세스해야하는 일반적인 메서드와 변수를 참조합니다. Hierarchy 클래스는 Point와 같은 특정 클래스가 아니라 IChild 멤버를 기대합니다.

일반적인 방법으로 만 액세스해야하는 경우 IChild로 참조 할 수 있으며 Point와 같은 특정 클래스가 필요할 때 바로 액세스 할 수 있습니다.

관련 문제