Destroy 함수 설명을 보면 GameObject, component or asset으로 되어있다.
이 말은 즉슨 게임오브젝트만 Destroy를 한다는 것이 아니라 컴포넌트나 에셋까지 파괴가 가능하다는 것이다.
만일 ui 변수가 UIBase 클래스의 객체라하자
Destroy(ui);
단순이렇게 한다면 UIBase 컴포넌트를 파괴한다는 것이다.
그래서 인스팩터창에 들어가보면
UIBase 컴포넌트가 사라져있는 것을 알 수 있다.
그렇기 때문에 게임오브젝트를 파괴하는 것이 목적이였다면
Destroy(ui.gameObject);
ui.gameObject 를 파괴를 해야하는 것이다.