# Unity の属性

> Use Unity-specific C# attributes to define special behavior for your code.

C# の [属性](https://learn.microsoft.com/en-us/dotnet/csharp/advanced-topics/reflection-and-attributes/) は、クラス、プロパティ、メソッド宣言の前に配置することができ、特別な動作を指示する、メタデータマーカーです。

.NET ライブラリには多くの属性が定義されており、Unity は多くの Unity 固有のカスタム属性も提供しています。例えば `HideInInspector` 属性をプロパティ宣言の上に追加すると、パブリックであっても Inspector でそのプロパティを非表示にできます。属性は、以下のように宣言の上に角かっこで囲って指定します。

```lang-csharp
[HideInInspector]
public float strength;
```

`UnityEngine` 属性の完全なリストについては、スクリプティング API リファレンスの **UnityEngine > Attributes** の下にある [AddComponentMenu](/engine/6000.0/script-reference/unity-engine/add-component-menu.md) で始まるリストを参照してください。

`UnityEditor` 属性の完全なリストについては、スクリプティング API リファレンスの **UnityEditor > Attributes** の下にある [AssetPostprocessorStaticVariableIgnoreAttribute](/engine/6000.0/script-reference/unity-editor/asset-postprocessor-static-variable-ignore-attribute.md) で始まるリストを参照してください。

**注意**.NET の [ThreadStatic](http://msdn.microsoft.com/en-us/library/system.threadstaticattribute.aspx) 属性は、Unity スクリプトに追加するとクラッシュの原因となるため、使用しないでください。

## 追加リソース

* [Unity Learn: 属性](https://learn.unity.com/tutorial/attributes#)
* [スクリプトの検査](/engine/6000.0/manual/scripting/get-started/inspecting-scripts.md)
* [スクリプトのシリアル化ルール](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-serialization/rules.md)
