{"id":24298111,"url":"https://github.com/mixtuti/screenshot_for_unity","last_synced_at":"2026-05-19T04:06:03.566Z","repository":{"id":269765365,"uuid":"908396796","full_name":"mixtuti/Screenshot_for_Unity","owner":"mixtuti","description":"Unityでスクリーンショットを撮影するためのライブラリ","archived":false,"fork":false,"pushed_at":"2025-01-21T02:19:31.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T09:53:39.121Z","etag":null,"topics":["screenshot","unity"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mixtuti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-26T01:14:15.000Z","updated_at":"2025-01-21T02:19:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"cfae7690-0604-4583-b25f-e933c895afce","html_url":"https://github.com/mixtuti/Screenshot_for_Unity","commit_stats":null,"previous_names":["mixtuti/screenshot_for_unity"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mixtuti/Screenshot_for_Unity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixtuti%2FScreenshot_for_Unity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixtuti%2FScreenshot_for_Unity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixtuti%2FScreenshot_for_Unity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixtuti%2FScreenshot_for_Unity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mixtuti","download_url":"https://codeload.github.com/mixtuti/Screenshot_for_Unity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixtuti%2FScreenshot_for_Unity/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267986709,"owners_count":24176689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["screenshot","unity"],"created_at":"2025-01-16T20:53:55.225Z","updated_at":"2026-05-19T04:05:58.540Z","avatar_url":"https://github.com/mixtuti.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Screenshot_for_Unity\n\n![代替テキスト](https://img.shields.io/badge/Unity-2022.3+-orange) \u003cimg src=\"http://img.shields.io/badge/UniTask-2.5.10-orange.svg?style=flat\"\u003e \u003cimg src=\"http://img.shields.io/badge/License-MIT-blue.svg?style=flat\"\u003e \u003cimg src=\"http://img.shields.io/badge/Language-C%23-green.svg?style=flat\"\u003e\u003cbr\u003e\nUnityでスクリーンショットを撮影するためのライブラリです。\u003cbr\u003e\n指定のレイヤーのみ撮影すること、撮影した画像を画面に表示など最低限のスクリーンショット機能を実装しました。\n\n## システム要件\n\nUnity 2022.3.28 での動作は確認済みです。\u003c/br\u003e\nUniTask 2.5.10 が必要になります。\n\nhttps://github.com/Cysharp/UniTask\n\n## 概要\nUnityでスクリーンショットを撮影するためのライブラリです。\u003cbr\u003e\n指定のレイヤーのみ撮影すること、撮影した画像を画面に表示など最低限のスクリーンショット機能を実装しました。\n\n## 依存関係\n\nUniTask 2.5.10\n\n## 導入方法\n\n### 1. プロジェクトへの導入\n導入方法は大きく分けて2つあります。お好きな方法で導入してください。\n\n#### 1. Unity Package Managerを使う方法\n「Window \u003e Package Manager」を開き、「Add Package from git URL」を選択します。\u003cbr\u003e\nその後、以下のURLを入力してください。\n```\nhttps://github.com/mixtuti/Screenshot_for_Unity.git?path=Screenshot%20for%20Unity\n```\n#### 2. Import Packageを使う方法\nリリースから最新のUnity Packageをダウンロードし、インポートします。\n\u003e [!TIP]\n\u003e 更新が遅くなることが多いので1の方法を使うことをお勧めします。\n\n### 2. 利用方法\nプレハブフォルダに入っているオブジェクトをシーン内に配置します。\u003cbr\u003e\nその後、適当なゲームオブジェクトにScreenshotCameraExtension.csをアタッチしてください。\u003cbr\u003e\n必要に応じてPlaySoundOnScreenshot.csやScreenshotDisplayExtension.csをアタッチしてください。\n\n## スクリプトの解説\n\n### 1. ScreenShotCore.cs\nスクリーンショットを撮るための機能を提供するスクリプト\u003cbr\u003e\n撮影するカメラやレイヤー解像度などを設定できます。\n\n### 2. ScreenshotExtensionsManager.cs\nスクリーンショットの前後でカスタムの処理をするためのスクリプト\n\n### 3. IScreenshotExtension.cs\nスクリーンショットを撮る前後に呼ばれる2つのメソッドを定義するインターフェイス\n\n### 4. ScreenshotSettings.cs\nスクリーンショットの設定をまとめたスクリプト\n\n### 5. PlaySoundOnScreenshot.cs\nスクリーンショット撮影後に効果音を鳴らすためのスクリプト\n\n### 6. ScreenshotCameraExtension.cs\nカメラ撮影に関する拡張機能を提供するスクリプト\u003cbr\u003e\n任意のカメラで撮影、撮影するレイヤーの指定、解像度指定などをサポート\n\n### 7. ScreenshotDisplayExtension.cs\nスクリーンショット撮影後に、画像を画面上に表示するためのスクリプト\u003cbr\u003e\n表示する位置や時間、サイズなどを指定できる\n\n## 関数\n\n### 1. ScreenShotCore.cs\n#### 1. TakeScreenshot()\nスクリーンショットを撮影するための関数。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドはスクリーンショットを撮影するためのメインのメソッドです。ScreenshotExtensionsManager.csが存在すれば、撮影前後に拡張機能の処理を実行します。\u003cbr\u003e\nその後、ScreenCapture.CaptureScreenshotを使用してスクリーンショットを指定されたファイルパスに保存します。\n\n#### 2. CaptureScreenshot(string filePath, Camera targetCamera = null, Vector2? customResolution = null, List\u003cstring\u003e layersToCapture = null)\n指定されたファイルパスにスクリーンショットを保存するメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): 保存するファイルパス。\n  - targetCamera (Camera, オプション): スクリーンショットを撮影するカメラ。指定しない場合は画面全体をキャプチャ。\n  - customResolution (Vector2?, オプション): カスタム解像度を指定する場合の解像度。\n  - layersToCapture (List\u003cstring\u003e, オプション): 撮影するレイヤーのリスト。指定しない場合、すべてのレイヤーがキャプチャされます。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、指定されたファイルパスにスクリーンショットを保存します。\u003cbr\u003e\ntargetCameraが指定されていればそのカメラから、指定されていなければ画面全体をキャプチャします。\u003cbr\u003e\nまた、解像度の設定やレイヤーの制御も行います。\n\n#### 3. InvokeBeforeScreenshot()\nスクリーンショット撮影前に拡張機能を実行するメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットを撮影する前に呼び出されます。\u003cbr\u003e\n拡張機能があれば、それらの BeforeScreenshotメソッドを実行します。\n\n#### 4. InvokeAfterScreenshot(string filePath)\nスクリーンショット撮影後に拡張機能を実行するメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): 保存されたスクリーンショットのファイルパス。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットを撮影した後に呼び出されます。\u003cbr\u003e\n拡張機能があれば、それらの AfterScreenshot メソッドを実行し、撮影後の処理を行います。\n\n### 2. ScreenshotExtensionsManager.cs\n#### 1. InvokeBeforeScreenshot()\nスクリーンショット撮影前に拡張機能を実行するメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットを撮影する前に呼び出されます。\u003cbr\u003e\nシーン内のすべての拡張機能 (IScreenshotExtension インターフェースを実装したオブジェクト) の BeforeScreenshot メソッドを実行します。\u003cbr\u003e\nこれにより、スクリーンショットが撮影される前に、各拡張機能が任意の処理を行うことができます。\n\n#### 2. InvokeAfterScreenshot(string filePath)\nスクリーンショット撮影後に拡張機能を実行するメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): 保存されたスクリーンショットのファイルパス。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットを撮影した後に呼び出されます。\u003cbr\u003e\n拡張機能があれば、それらの AfterScreenshot メソッドを実行し、撮影後の処理を行います。\u003cbr\u003e\nfilePath には、保存されたスクリーンショットのファイルパスが渡され、拡張機能はそれを利用して後処理を行うことができます。\n\n### 6. ScreenshotCameraExtension\n#### 1. BeforeScreenshot()\nスクリーンショット撮影前に呼ばれるメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットが撮影される前に呼び出されます。\u003cbr\u003e\n現状では特別な処理は行っていませんが、必要に応じて拡張することができます。\n\n#### 2. AfterScreenshot(string filePath)\nスクリーンショット撮影後に呼ばれるメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): 保存されたスクリーンショットのファイルパス。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットが撮影された後に呼び出されます。\u003cbr\u003e\n現状では特別な処理は行っていませんが、拡張機能を実行するなど、撮影後の処理を追加できます。\n\n#### 3. CaptureMultipleResolutions()\n複数解像度でのスクリーンショットを撮影するメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、指定された解像度で複数のスクリーンショットを撮影します。\u003cbr\u003e\n解像度は、1920x1080、1280x720、640x480の3つのプリセットで撮影します。\u003cbr\u003e\nそれぞれの解像度でスクリーンショットを保存するために、CaptureScreenshot() メソッドを呼び出します。\n\n#### 4. GenerateFilePath(string baseFilePath, int width, int height)\n解像度に基づいてファイルパスを生成するメソッド。\u003cbr\u003e\n- 引数:\n  - baseFilePath (string): 基本となるファイルパス。\n  - width (int): 解像度の横幅。\n  - height (int): 解像度の縦幅。\n- 戻り値: (string): 解像度が追加された新しいファイルパス。\u003cbr\u003e\nこのメソッドは、解像度に基づいてファイルパスを生成します。\u003cbr\u003e\n例えば、ファイル名に 1920x1080 の解像度を追加する形で保存先を決定します。\n\n#### 5. CaptureScreenshot(string filePath)\n指定した解像度とカメラ設定でスクリーンショットを撮るメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): 保存先のファイルパス。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、指定された filePath にスクリーンショットを保存します。\u003cbr\u003e\nレイヤー設定に基づいて、カメラの cullingMask を設定し、特定のレイヤーをキャプチャ対象にします。\n\n#### 6. ConvertLayerMasksToStrings(List\u003cLayerMask\u003e layerMasks)\nレイヤーマスクをレイヤー名に変換するメソッド。\u003cbr\u003e\n- 引数:\n  - layerMasks (List\u003cLayerMask\u003e): レイヤーマスクのリスト。\n- 戻り値: (List\u003cstring\u003e): レイヤー名のリスト。\u003cbr\u003e\nこのメソッドは、指定された LayerMask のリストをレイヤー名に変換します。\u003cbr\u003e\n「Everything」の場合にはその文字列を返し、他のレイヤーの場合はそれに対応するレイヤー名を返します。\n\n#### 7. TakeScreenshot()\nスクリーンショットを撮影するメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、captureMultipleResolutions が true の場合、複数の解像度でスクリーンショットを撮影します。\u003cbr\u003e\nそれ以外の場合は、CaptureScreenshot() メソッドを呼び出して通常のスクリーンショットを撮影します。\n\n### 7. ScreenshotDisplayExtension.cs\n#### 1. BeforeScreenshot()\nスクリーンショット撮影前に呼ばれるメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットが撮影される前に呼び出されます。\u003cbr\u003e\n現在は特別な処理を行っていませんが、必要に応じて拡張することができます。\n\n#### 2. AfterScreenshot(string filePath)\nスクリーンショット撮影後に呼ばれるメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): 保存されたスクリーンショットのファイルパス。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、スクリーンショットが撮影された後に呼び出されます。\u003cbr\u003e\nファイルが存在するまで待機し、画像を読み込んで表示します。\u003cbr\u003e\nオプションで、フェードアウトや縮小処理を実行できます。\n\n#### 3. WaitForFileToExist(string filePath)\n指定されたファイルが存在するまで待機するメソッド。\u003cbr\u003e\n- 引数:\n  - filePath (string): ファイルのパス。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、指定されたファイルが存在するまで待機します。\u003cbr\u003e\nファイルが存在するようになると、処理を続行します。\n\n#### 4. FadeOut(RawImage image, float duration)\n指定された RawImage をフェードアウトさせるメソッド。\u003cbr\u003e\n- 引数:\n  - image (RawImage): フェードアウトさせる対象の RawImage コンポーネント。\n  - duration (float): フェードアウトにかかる時間（秒）。\n- 戻り値: UniTask\u003cbr\u003e\nこのメソッドは、指定された RawImage を指定された duration の間にフェードアウトさせます。\u003cbr\u003e\nオプションで、フェードアウト中に画像のサイズを縮小する処理も行えます。\n\n#### 5. initImage()\nRawImage の初期設定を行うメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、RawImage の色を透明に初期化します。\u003cbr\u003e\n画像の表示を開始する前に、このメソッドを呼び出しておきます。\n\n#### 6. SetRawImageResolution()\n解像度プリセットに基づいて RawImage の解像度を設定するメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、resolutionPreset に応じて RawImage の解像度を設定します。\u003cbr\u003e\n解像度プリセットは、FullHD、HD、SD、画面サイズの半分、四分の一、八分の一、またはカスタム解像度に設定できます。\n\n#### 7. SetRawImageSize(float width, float height)\nRawImage のサイズを設定するメソッド。\u003cbr\u003e\n- 引数:\n  - width (float): 設定する幅。\n  - height (float): 設定する高さ。\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、指定した width と height に基づいて RawImage のサイズを設定します。\n\n#### 8. SetRawImagePosition()\n解像度プリセットに基づいて RawImage の位置を設定するメソッド。\u003cbr\u003e\n- 引数: なし\n- 戻り値: なし\u003cbr\u003e\nこのメソッドは、positionPreset に基づいて RawImage の位置を設定します。\u003cbr\u003e\n位置の選択肢として、中央、右上、右下、左上、左下、またはカスタム位置を選べます。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixtuti%2Fscreenshot_for_unity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmixtuti%2Fscreenshot_for_unity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixtuti%2Fscreenshot_for_unity/lists"}