# パッケージのサンプルの作成

> Include optional samples that help users learn the package and import example content.

Unity エディターバージョン 2019.1 から、パッケージにサンプルを追加できるようになりました。サンプルとは、コード例、シェーダー、テクスチャ、アニメーションの一部分やその他のファイルで、通常はプロジェクトの `Assets` フォルダー内に置かれています。

Package Manager ウィンドウを開いてサンプルを含むパッケージを選択すると、パッケージの **詳細ペイン** にパッケージ内の各サンプルの [Import](/engine/6000.0/manual/packages-list/packages/upm-ui/details.md) ボタンが表示されます。**Import** ボタンをクリックすると、Package Manager はプロジェクトの `Assets` フォルダーの下に、そのサンプルのサブフォルダー構造全体をコピーします。

パッケージにサンプルを加える手順は以下の通りです。

1. アセットファイルや C# コードのサンプルファイルを [Samples\~ フォルダー](#sample-subfolder) に置きます。1 つのパッケージに複数のサンプルを追加できます。`Samples~` フォルダーの各サブフォルダーにサンプルが 1 つ入ります。

   **ノート**: チルダ文字 (`~`) は、`Samples~` フォルダーのコンテンツを無視するように Unity に指示します。これらのフォルダーは、`.meta` ファイルでは追跡されません。

2. `package.json` マニフェストファイルの `samples` 配列の下に、[各サンプルの JSON オブジェクト](#sample-manifest) を追加します。

## サンプルファイルの場所

サンプルアセットは、パッケージの `Samples~` フォルダーのサブフォルダーに追加できます。例えば、シェーダーのサンプルを含むパッケージは以下のようになります。

```
MyPackage
  ├── package.json
  └── Samples~
        ├── SamplesHDRP
        │    ├── Textures
        │    |     ├── MossyRock.bmp
        │    |     └── SandyRock.bmp
        │    └── Shader
        │          ├── Lit Texture Blend HDRP.ShaderGraph
        │          └── Lit Vertex Color HDRP.ShaderGraph
        └── SamplesStandard
        │    ├── Textures
        │    |     ├── MossyRock.bmp
        │    |     └── SandyRock.bmp
        │    └── Shader
        │          ├── StandardTextureBlend.shader
        │          └── StandardVertexColor.shader
        └── SamplesUniversalRP
             ├── Textures
             |     ├── MossyRock.bmp
             |     └── SandyRock.bmp
             └── Shader
                   ├── Lit Texture Blend URP.ShaderGraph
                   └── Lit Vertex Color URP.ShaderGraph
```

## マニフェストにサンプルを加える

`package.json` ファイルに `samples` という JSON 配列を追加します。各サンプルについて、少なくとも `displayName` と `path` を含む JSON オブジェクトを Samples フォルダーに加えます。

| **キー**        | **説明**                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------- |
| `displayName` | Package Manager ウィンドウのパッケージ詳細に表示されるサンプルの名前です。                                                  |
| `description` | サンプルが何を表すのか、何を含んでいるのかを簡単に説明します。これは、パッケージマニフェストのためだけのものです。説明はインターフェースには表示されず、ツールチップとしても表示されません。 |
| `path`        | `Samples~` フォルダーからサンプルのルートフォルダーへのパスです。                                                         |

例えば、[Location of sample files](#sample-subfolder) の例と同じ構造体を使用すると、`samples` セクションは以下のようになります。

```lang-json
{
	"samples": [
		{
			"displayName": "HDRP Shaders",
			"description": "Contains sample shaders for the High Definition render pipeline",
			"path": "Samples~/SamplesHDRP"
		},
		{
			"displayName": "URP Shaders",
			"description": "Contains sample shaders for the Universal render pipeline",
			"path": "Samples~/SamplesUniversalRP"
		},
		{
			"displayName": "Standard RP Shaders",
			"description": "Contains sample shaders for the Standard render pipeline",
			"path": "Samples~/SamplesStandard"
		}
	]
}
```
