我正在创建一个GameObject类,我希望使用与unity相同的方式来获取GameObject组件:GetComponent<" component">()...
我试过了:
//Template function
template<class TYPE>
TYPE* GetComponent();
//Definition
template<class TYPE>
inline TYPE * GameObject::GetComponent()
{
for (list<Component*>::iterator it = componentsList.begin(); it != componentsList.end(); it++) {
if ((TYPE*)*it == TYPE) {
return (TYPE*)*it;
}
}
return nullptr;
}
但它没有用。我知道问题出在&#34; if((TYPE *)* it == TYPE)&#34;因为它显示错误,我尝试了其他方式,但没有...我不擅长模板-.-&#34;。
有任何想法实现这个吗?
感谢。