{"id":2258,"date":"2020-06-15T00:10:16","date_gmt":"2020-06-14T16:10:16","guid":{"rendered":"https:\/\/www.clonefactor.com\/wordpress\/?p=2258"},"modified":"2020-06-15T00:22:46","modified_gmt":"2020-06-14T16:22:46","slug":"objectpool","status":"publish","type":"post","link":"https:\/\/www.clonefactor.com\/wordpress\/program\/c\/2258\/","title":{"rendered":"ObjectPool V2 \u63d2\u4ef6"},"content":{"rendered":"\n<p>\u524d\u7bc7 :\u00a0<a href=\"https:\/\/www.clonefactor.com\/wordpress\/program\/c\/2248\/\">Object Pool \u7684\u5c0f\u7df4\u7fd2.<\/a><\/p>\n<p><strong>\u63d2\u4ef6\u4e0b\u8f09\u9ede : <a href=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2020\/06\/20200615_ObjectPool.zip\">20200615_ObjectPool<\/a><br \/><\/strong>\u9019\u5929\u653e\u5047, \u5c31\u628a\u5b83\u505a\u5230 Plugin API \u7d1a\u5225.<br \/>\u70ba\u4e86\u652f\u63f4\u5b8c\u5168\u52d5\u614b\u751f\u6210, \u52a0\u4e0a\u4e86 PoolManager \u4e5f\u512a\u5316\u4e86\u4e00\u9ede\u5167\u5b58, \u53ca\u517c\u9867\u4e86 Photon \u7684\u63a5\u5408, \u4e0d\u904e\u4e3b\u9ad4\u601d\u8def\u6c92\u6709\u751a\u9ebc\u6539\u8b8a.<br \/>\u4e0d\u904e\u4ee3\u78bc\u53ca\u6e2c\u8a66\u6709\u9ede\u591a\u5c31\u4e0d\u5206\u4eab\u4ee3\u78bc, \u6539\u70ba\u76f4\u63a5\u767c\u5305\u4e86.<br \/><strong>\u63d2\u4ef6\u4e0b\u8f09\u9ede : <a href=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2020\/06\/20200615_ObjectPool.zip\">20200615_ObjectPool<\/a><br \/><\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"objectpool v2\" width=\"1260\" height=\"945\" src=\"https:\/\/www.youtube.com\/embed\/nehHxS8et8Q?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>\u00a0<\/p>\n<p>\u6a94\u6848 Import \u5f8c\u9644\u6709\u4e09\u500b\u6e2c\u8a66 Scene<\/p>\n<ol>\n<li>TestPoolIdDuplicate<\/li>\n<li>TestPoolLimitControl<\/li>\n<li>TestShooting<\/li>\n<\/ol>\n<p>ObjectPool \u529f\u80fd<\/p>\n<ul>\n<li>\u652f\u63f4\u9810\u8f09 Preload prefab.\n<ul>\n<li>\u500b\u5225\u9810\u8f09\u8a2d\u5b9a : \u6bcf\u500b Prefab -&gt; PrefabSetting<\/li>\n<li>\u5ef6\u6642\u9810\u8f09<\/li>\n<li>\u9810\u8f09\u9593\u9694\u55ae\u4f4d:\u5e40<\/li>\n<li>\u9810\u8f09\u7269\u4ef6\u6578\u91cf<\/li>\n<li>\u5ef6\u9072 Awake() :- \u5230\u7b2c\u4e00\u6b21\u547c\u53eb Spawn()<\/li>\n<\/ul>\n<\/li>\n<li>\u52d5\u614b\u5efa\u7acb\u7269\u4ef6\u6c60\n<ul>\n<li>PoolManager.GetOrCreatePool(&#8220;Name&#8221;);<\/li>\n<li>\u76f8\u540c\u540d\u7a31\u6642\u81ea\u52d5\u4fee\u6539 GameObject.name \u7dad\u6301\u540d\u7a31\u7684\u55ae\u4e00\u6027.<\/li>\n<\/ul>\n<\/li>\n<li>Spawn()\n<ul>\n<li>\u4f7f\u7528 \u9810\u8f09\u8a2d\u5b9a\u7684\u5b57\u4e32 \u70ba\u53c3\u6578 &#8211; \u7528\u4f5c\u8de8\u7db2\u540c\u6b65 (e.g. photon)<\/li>\n<li>\u4f7f\u7528 Prefab &#8211; GameObject \u70ba\u53c3\u6578\n<ul>\n<li>\u53ef\u6307\u5b9a\u7269\u4ef6\u70ba\u7236\u7cfb\u5c64\u7d1a<\/li>\n<li>\u53ef\u4ee5\u52d5\u614b\u66f4\u6539\u65bc ObjectPool \u4e2d\u7684 PrefabSetting<\/li>\n<\/ul>\n<\/li>\n<li>PrefabSetting\n<ul>\n<li>\u6307\u5b9a\u7269\u4ef6\u6c60\u7684\u5bb9\u91cf = \u7522\u751f\u4e0a\u9650<\/li>\n<li>\u9054\u5230\u4e0a\u9650\u6642\u5ffd\u7565 Spawn \u8981\u6c42 -&gt; \u56de\u50b3 Null<\/li>\n<li>Despawn \u6642\u7684\u8a2d\u5b9a<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Despawn()\n<ul>\n<li>PrefabSetting\n<ul>\n<li>\u505c\u7559\u5728\u76ee\u524d\u7236\u5c64\u7d1a \u6216 \u56de\u6536\u4e26\u6210\u70ba ObjectPool \u5b50\u7269\u4ef6<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>ObjectPool.IsSpawned(GameObject)\n<ul>\n<li>\u6aa2\u67e5\u7269\u4ef6\u662f\u5426\u88ab\u5df2\u88ab\u7269\u4ef6\u6c60\u7522\u751f<\/li>\n<\/ul>\n<\/li>\n<li>\u64f4\u5c55\u7528\u7684 ISpawnObject\n<ul>\n<li>OnSpawned \u5ee3\u64ad(Broadcast)<\/li>\n<li>OnDespawned \u5ee3\u64ad(Broadcast)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u9810\u5148\u505a\u7684\u5169\u500b\u5e38\u7528 ISpawnObject \u7684\u5c0f\u5de5\u5177<\/p>\n<ul>\n<li>SelfDespawn.cs \u662f\u5728\u7279\u5b9a\u6642\u9593\u5f8c\u81ea\u52d5\u92b7\u6bc0 Despawn \u7684\u5de5\u5177<\/li>\n<li>DespawnOnCollision.cs \u662f\u5728\u63a5\u89f8\u5230\u7684 Trigger \/ Collider \u5f8c\u6703\u89f8\u767c\u92b7\u6bc0\u7684\u5de5\u5177\n<ul>\n<li>\u53ef\u6307\u5b9a\u67d0\u500b GameObject.tag \u7b26\u5408\u624d\u89f8\u767c.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u7bc7 :\u00a0Object Pool \u7684\u5c0f\u7df4\u7fd2. \u63d2\u4ef6\u4e0b\u8f09\u9ede : 20200615_ObjectPool &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,11],"tags":[16,110],"class_list":["post-2258","post","type-post","status-publish","format-standard","hentry","category-c","category-unity3d","tag-c-2","tag-plugin"],"_links":{"self":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2258"}],"version-history":[{"count":5,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2258\/revisions"}],"predecessor-version":[{"id":2265,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2258\/revisions\/2265"}],"wp:attachment":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}