加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos实现unity组件式

发布时间:2020-12-14 17:16:36 所属栏目:百科 来源:网络整理
导读:用法灵感来源于unity,打算改造cocos class SGComponent{public:virtual void update(float delta){};virtual void onStart(){}virtual void onDestroy(){};virtual void onCreate(){};};class AudioComponent :public SGComponent{public:};class RenderCom

用法灵感来源于unity,打算改造cocos

class SGComponent
{
public:
	virtual void update(float delta){};
	virtual void onStart(){}
	virtual void onDestroy(){};
	virtual void onCreate(){};
};

class AudioComponent :public SGComponent
{
public:
};
class RenderComponent :public SGComponent
{
public:
};


class GameObject
{
public:
	template<class T>
	SGComponent* GetComponent()
	{
	return nullptr;
	};

	template<>
	SGComponent* GetComponent<AudioComponent>()
	{
	return this->_audio;
	};

    template<class T>void AddComponent(T * t){};

	template<>void AddComponent(RenderComponent *t)
	{
		if (_render){}
		this->_render = t;
	};

	template<>void  AddComponent(AudioComponent *t)
	{
		if (_audio){}
		this->_audio = t;
	};
private:
	AudioComponent*_audio = nullptr;
	RenderComponent *_render = nullptr;
};




int main(int argc,char *argv[])
{
	_CrtDumpMemoryLeaks();

	GameObject obj;
	cout << obj.GetComponent<RenderComponent>();

	system("pause");
	return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读