{"id":1503,"date":"2019-11-16T19:50:32","date_gmt":"2019-11-16T19:50:32","guid":{"rendered":"https:\/\/docs.sisus.co\/power-inspector\/?p=1503"},"modified":"2021-03-24T17:50:24","modified_gmt":"2021-03-24T17:50:24","slug":"requireanycomponent","status":"publish","type":"post","link":"https:\/\/docs.sisus.co\/power-inspector\/attributes\/requireanycomponent\/","title":{"rendered":"RequireAnyComponent"},"content":{"rendered":"<p>When added before a component class will make sure that whenever the component with the attribute is added to GameObjects, at least one component matching one of the specified types is also present on the same GameObject.<\/p>\n<h2>Attribute Target<\/h2>\n<p>Component class<\/p>\n<h2>Example<\/h2>\n<pre>using System;\r\nusing UnityEngine;\r\nusing UnityEngine.UI;\r\nusing Sisus.Attributes;\r\n\r\n[RequireAnyComponent(typeof(Renderer), typeof(Graphic)), DisallowMultipleComponent]\r\npublic class Invisible : MonoBehaviour\r\n{\r\n\tvoid Awake()\r\n\t{\r\n\t\tvar renderer = GetComponent&lt;Renderer&gt;();\r\n\t\tif(renderer != null)\r\n\t\t{\r\n\t\t\trenderer.enabled = false;\r\n\t\t}\r\n\r\n\t\tvar graphic = GetComponent&lt;Graphic&gt;();\r\n\t\tif(graphic != null)\r\n\t\t{\r\n\t\t\tgraphic.enabled = false;\r\n\t\t}\r\n\r\n\t\tif(renderer == null &amp;&amp; graphic == null)\r\n\t\t{\r\n\t\t\tthrow new InvalidOperationException(\"No Renderer or Graphic components found on GameObject with the Invisible component.\");\r\n\t\t}\r\n\t}\r\n}<\/pre>\n<h2>Example Result (Add Component)<\/h2>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-1511\" src=\"https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/2019\/11\/require-components-pick-component.png\" alt=\"\" width=\"863\" height=\"391\" srcset=\"https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/sites\/2\/2019\/11\/require-components-pick-component.png 863w, https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/sites\/2\/2019\/11\/require-components-pick-component-300x136.png 300w, https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/sites\/2\/2019\/11\/require-components-pick-component-768x348.png 768w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Example Result (Remove Component)<\/h2>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-1506\" src=\"https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/2019\/11\/remove-component-dependencies-detected.png\" alt=\"\" width=\"389\" height=\"156\" srcset=\"https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/sites\/2\/2019\/11\/remove-component-dependencies-detected.png 389w, https:\/\/docs.sisus.co\/power-inspector\/wp-content\/uploads\/sites\/2\/2019\/11\/remove-component-dependencies-detected-300x120.png 300w\" sizes=\"(max-width: 389px) 100vw, 389px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When added before a component class will make sure that whenever the component with the attribute is added to GameObjects, at least one component matching one of the specified types is also present on the same GameObject. Attribute Target Component class Example using System; using UnityEngine; using UnityEngine.UI; using Sisus.Attributes; [RequireAnyComponent(typeof(Renderer), typeof(Graphic)), DisallowMultipleComponent] public class ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/docs.sisus.co\/power-inspector\/attributes\/requireanycomponent\/\" title=\"read more\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[26],"tags":[],"_links":{"self":[{"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/posts\/1503"}],"collection":[{"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/comments?post=1503"}],"version-history":[{"count":5,"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/posts\/1503\/revisions"}],"predecessor-version":[{"id":1837,"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/posts\/1503\/revisions\/1837"}],"wp:attachment":[{"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/media?parent=1503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/categories?post=1503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.sisus.co\/power-inspector\/wp-json\/wp\/v2\/tags?post=1503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}