c ++中的Unity GetComponent<>()

时间:2017-03-31 01:38:56

标签: c++ templates unity3d

我正在创建一个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;。

有任何想法实现这个吗?

感谢。

0 个答案:

没有答案