{"id":1535,"date":"2018-03-16T21:07:56","date_gmt":"2018-03-16T12:07:56","guid":{"rendered":"http:\/\/naochang.me\/?p=1535"},"modified":"2018-03-16T21:07:56","modified_gmt":"2018-03-16T12:07:56","slug":"%e5%8b%95%e7%9a%84%e3%81%ab%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b%e3%82%b3%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%8d%e3%83%b3%e3%83%88%e3%82%92%e9%81%b8%e6%8a%9e","status":"publish","type":"post","link":"https:\/\/stacstar.jp\/blog\/?p=1535","title":{"rendered":"\u52d5\u7684\u306b\u8ffd\u52a0\u3059\u308b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u9078\u629e"},"content":{"rendered":"<p>\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u969b\u306b\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u8ffd\u52a0\u3057\u305f\u3044\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u5909\u3048\u308b\u65b9\u6cd5\u3002<br \/>\nC#\u3067\u306fClass\u578b\u3092\u5909\u6570\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u306e\u3067(?)\u3001typeof()\u3067\u305d\u306e\u578b\u304c\u3082\u3064Type\u578b(\u578b\u5ba3\u8a00)\u304c\u53d6\u5f97\u3067\u304d\u308b\u3002Unity\u3067\u306f<code>AddComponent&lt;T&gt;()<\/code>\u306e\u4ed6\u306b<code>AddComponent(Type componentType)<\/code>\u304c\u3042\u308b\u306e\u3067\u3001\u751f\u6210\u3057\u305f\u3044\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092Type\u578b\u3067\u6e21\u3057\u3066\u3042\u3052\u308c\u3070\u52d5\u7684\u306b\u8ffd\u52a0\u3059\u308b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u9078\u3079\u308b\u3002<br \/>\n\uff08\u305d\u3082\u305d\u3082\u3053\u3093\u306a\u3084\u308a\u65b9\u3067\u3044\u3044\u306e\u304b\u306a&#8230;)<\/p>\n<p><!--more--><\/p>\n<pre class=\"brush: unitycsharp; title: ; notranslate\" title=\"\">\r\nusing System;\r\nusing UnityEngine;\r\n\r\npublic class TypeTest : MonoBehaviour {\r\n\tComponentChoser compChoser = new ComponentChoser();\r\n\r\n\tvoid Start() {\r\n\t\tthis.gameObject.AddComponent(this.compChoser.ChoseComponent());\r\n\t}\r\n}\r\n\r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u9078\u3093\u3067\u304f\u308c\u308b\u3002\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class ComponentChoser {\r\n\tenum ComponentType {\r\n\t\tTypeA,\r\n\t\tTypeB,\r\n\t\tTypeC\r\n\t}\r\n\r\n\tComponentType createType = ComponentType.TypeB;\r\n\r\n\tpublic Type ChoseComponent() {\r\n\t\tType t = null;\r\n\r\n\t\tswitch (this.createType) {\r\n\t\t\tcase ComponentType.TypeA:\r\n\t\t\t\tt = typeof(A);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase ComponentType.TypeB:\r\n\t\t\t\tt = typeof(B);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase ComponentType.TypeC:\r\n\t\t\t\tt = typeof(C);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn t;\r\n\t}\r\n}\r\n\r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u4f5c\u3089\u308c\u308b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3002\r\n\/\/\/ &lt;\/summary&gt;\r\npublic abstract class Base : MonoBehaviour {}\r\npublic class A : Base {}\r\npublic class B : Base {}\r\npublic class C : Base {}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u969b\u306b\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u8ffd\u52a0\u3057\u305f\u3044\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u5909\u3048\u308b\u65b9\u6cd5\u3002 C#\u3067\u306fClass\u578b\u3092\u5909\u6570\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u306e\u3067(?)\u3001typeof()\u3067\u305d\u306e\u578b\u304c\u3082\u3064Type\u578b(\u578b\u5ba3\u8a00)\u304c\u53d6\u5f97\u3067\u304d\u308b\u3002Unity\u3067 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,2],"tags":[],"class_list":["post-1535","post","type-post","status-publish","format-standard","hentry","category-c","category-unity"],"_links":{"self":[{"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1535"}],"version-history":[{"count":8,"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1535\/revisions"}],"predecessor-version":[{"id":1544,"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1535\/revisions\/1544"}],"wp:attachment":[{"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stacstar.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}