{"id":18025,"date":"2024-03-15T16:08:02","date_gmt":"2024-03-15T16:08:02","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/"},"modified":"2024-03-21T12:19:10","modified_gmt":"2024-03-21T12:19:10","slug":"how-to-use-unity-reflection-to-access-a-static-class","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/","title":{"rendered":"How to use Unity reflection to access a static class"},"content":{"rendered":"<p>The steps for using Unity reflection to access a static class are as follows:<\/p>\n<ol>\n<li>Firstly, make sure that the assembly containing the static class that needs to be reflected is referenced in the Unity project. This can be achieved by importing the relevant DLL files in the Unity editor interface.<\/li>\n<li>Use the Type.GetType() method in the code to get the Type object of a static class. This method requires passing in the fully qualified name of the class, including the namespace and class name.<\/li>\n<li>The Type object obtained using the Type.GetType() method can be used to retrieve information such as methods, properties, and fields in a static class by calling the GetMethod(), GetProperty(), GetField() methods.<\/li>\n<\/ol>\n<p>Here is a sample code showing how to use Unity reflection to access information about a static class:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">using<\/span> System;\r\n<span class=\"hljs-keyword\">using<\/span> UnityEngine;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">ReflectionExample<\/span> : <span class=\"hljs-title\">MonoBehaviour<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Start<\/span>()<\/span>\r\n    {\r\n        <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u9759\u6001\u7c7b\u7684 Type \u5bf9\u8c61<\/span>\r\n        Type staticClassType = Type.GetType(<span class=\"hljs-string\">\"\u547d\u540d\u7a7a\u95f4.\u9759\u6001\u7c7b\u540d\"<\/span>);\r\n\r\n        <span class=\"hljs-keyword\">if<\/span> (staticClassType != <span class=\"hljs-literal\">null<\/span>)\r\n        {\r\n            <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u9759\u6001\u7c7b\u4e2d\u7684\u67d0\u4e2a\u65b9\u6cd5<\/span>\r\n            MethodInfo method = staticClassType.GetMethod(<span class=\"hljs-string\">\"MethodName\"<\/span>);\r\n            <span class=\"hljs-keyword\">if<\/span> (method != <span class=\"hljs-literal\">null<\/span>)\r\n            {\r\n                <span class=\"hljs-comment\">\/\/ \u8c03\u7528\u9759\u6001\u65b9\u6cd5<\/span>\r\n                method.Invoke(<span class=\"hljs-literal\">null<\/span>, <span class=\"hljs-literal\">null<\/span>);\r\n            }\r\n\r\n            <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u9759\u6001\u7c7b\u4e2d\u7684\u67d0\u4e2a\u5c5e\u6027<\/span>\r\n            PropertyInfo property = staticClassType.GetProperty(<span class=\"hljs-string\">\"PropertyName\"<\/span>);\r\n            <span class=\"hljs-keyword\">if<\/span> (property != <span class=\"hljs-literal\">null<\/span>)\r\n            {\r\n                <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u5c5e\u6027\u7684\u503c<\/span>\r\n                <span class=\"hljs-built_in\">object<\/span> <span class=\"hljs-keyword\">value<\/span> = property.GetValue(<span class=\"hljs-literal\">null<\/span>);\r\n            }\r\n\r\n            <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u9759\u6001\u7c7b\u4e2d\u7684\u67d0\u4e2a\u5b57\u6bb5<\/span>\r\n            FieldInfo field = staticClassType.GetField(<span class=\"hljs-string\">\"FieldName\"<\/span>);\r\n            <span class=\"hljs-keyword\">if<\/span> (field != <span class=\"hljs-literal\">null<\/span>)\r\n            {\r\n                <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u5b57\u6bb5\u7684\u503c<\/span>\r\n                <span class=\"hljs-built_in\">object<\/span> <span class=\"hljs-keyword\">value<\/span> = field.GetValue(<span class=\"hljs-literal\">null<\/span>);\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example code above, it is necessary to replace the namespace.static class name with the actual namespace and name of the static class. Then, you can use methods like GetMethod(), GetProperty(), GetField(), etc. to retrieve information such as methods, properties, fields, etc. in the static class and perform corresponding operations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The steps for using Unity reflection to access a static class are as follows: Firstly, make sure that the assembly containing the static class that needs to be reflected is referenced in the Unity project. This can be achieved by importing the relevant DLL files in the Unity editor interface. Use the Type.GetType() method in [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18025","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use Unity reflection to access a static class - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use Unity reflection to access a static class\" \/>\n<meta property=\"og:description\" content=\"The steps for using Unity reflection to access a static class are as follows: Firstly, make sure that the assembly containing the static class that needs to be reflected is referenced in the Unity project. This can be achieved by importing the relevant DLL files in the Unity editor interface. Use the Type.GetType() method in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T16:08:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:19:10+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ava Mitchell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"How to use Unity reflection to access a static class\",\"datePublished\":\"2024-03-15T16:08:02+00:00\",\"dateModified\":\"2024-03-21T12:19:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\"},\"wordCount\":197,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\",\"name\":\"How to use Unity reflection to access a static class - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:08:02+00:00\",\"dateModified\":\"2024-03-21T12:19:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use Unity reflection to access a static class\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use Unity reflection to access a static class - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/","og_locale":"en_US","og_type":"article","og_title":"How to use Unity reflection to access a static class","og_description":"The steps for using Unity reflection to access a static class are as follows: Firstly, make sure that the assembly containing the static class that needs to be reflected is referenced in the Unity project. This can be achieved by importing the relevant DLL files in the Unity editor interface. Use the Type.GetType() method in [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:08:02+00:00","article_modified_time":"2024-03-21T12:19:10+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"How to use Unity reflection to access a static class","datePublished":"2024-03-15T16:08:02+00:00","dateModified":"2024-03-21T12:19:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/"},"wordCount":197,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/","name":"How to use Unity reflection to access a static class - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:08:02+00:00","dateModified":"2024-03-21T12:19:10+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-unity-reflection-to-access-a-static-class\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use Unity reflection to access a static class"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18025"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18025\/revisions"}],"predecessor-version":[{"id":51676,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18025\/revisions\/51676"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}