<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Unity基礎 on GARNET LOG</title><link>https://garnetcode.jp/tags/unity%E5%9F%BA%E7%A4%8E/</link><description>Recent content in Unity基礎 on GARNET LOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sat, 08 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://garnetcode.jp/tags/unity%E5%9F%BA%E7%A4%8E/index.xml" rel="self" type="application/rss+xml"/><item><title>【Unity】DontDestroyOnLoadの使い方</title><link>https://garnetcode.jp/blog/2026/08/dont_destroy_on_load/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2026/08/dont_destroy_on_load/</guid><description>&lt;h3 id="dontdestroyonloadとは"&gt;DontDestroyOnLoadとは？&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;DontDestroyOnLoad&lt;/code&gt;とは、シーンを切り替えても指定した&lt;code&gt;GameObject&lt;/code&gt;を破棄せずに残し続けるためのUnityのメソッドです。&lt;/p&gt;
&lt;p&gt;通常、&lt;code&gt;SceneManager.LoadScene&lt;/code&gt;などで別のシーンを読み込むと、それまでのシーンに存在していた&lt;code&gt;GameObject&lt;/code&gt;はすべて破棄されます。&lt;/p&gt;
&lt;p&gt;しかしゲームを作っていると、シーンが変わってもずっと存在し続けてほしいオブジェクトが出てきます。&lt;/p&gt;
&lt;p&gt;そういったオブジェクトを&lt;code&gt;DontDestroyOnLoad&lt;/code&gt;に登録しておくと、シーン遷移をまたいでも破棄されず、状態を保持したまま生き続けます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// このGameObjectをシーン遷移後も破棄しないようにする&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DontDestroyOnLoad(gameObject);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="blogcard"&gt;
&lt;a href="https://docs.unity3d.com/ja/current/ScriptReference/Object.DontDestroyOnLoad.html" target="_blank" rel="noopener nofollow"&gt;
&lt;div class="blogcard-content"&gt;
&lt;span class="blogcard-label blogcard-label--unitydocs"&gt;&lt;i class="fas fa-book" aria-hidden="true"&gt;&lt;/i&gt;Unity Docs&lt;/span&gt;
&lt;div class="blogcard-title"&gt;https://docs.unity3d.com/ja/current/ScriptReference/Object.DontDestroyOnLoad.html&lt;/div&gt;
&lt;div class="blogcard-site"&gt;docs.unity3d.com&lt;/div&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="related-link"&gt;
&lt;div class="related-link-label"&gt;🔗 関連記事&lt;/div&gt;
&lt;div class="related-link-lead"&gt;シーンの切り替えそのものについては&lt;code&gt;SceneManager&lt;/code&gt;の記事で解説しています。&lt;/div&gt;
&lt;a class="blogcard-fallback" href="https://garnetcode.jp/blog/2026/08/scene_manager/" target="_blank" rel="noopener nofollow"&gt;https://garnetcode.jp/blog/2026/08/scene_manager/&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>【Unity】SceneManagerの使い方</title><link>https://garnetcode.jp/blog/2026/08/scene_manager/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2026/08/scene_manager/</guid><description>&lt;h3 id="scenemanagerとは"&gt;SceneManagerとは？&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;SceneManager&lt;/code&gt;は、Unityでシーンの読み込みやアンロードを行うためのクラスです。&lt;/p&gt;
&lt;p&gt;タイトル画面からゲーム本編へ移動したり、ステージごとにシーンを分けて切り替えたりと、ゲーム制作では必ず登場する仕組みですね。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;UnityEngine.SceneManagement&lt;/code&gt;名前空間に含まれており、&lt;code&gt;using UnityEngine.SceneManagement;&lt;/code&gt;を書けば利用できます。&lt;/p&gt;
&lt;div class="blogcard"&gt;
&lt;a href="https://docs.unity3d.com/ja/2022.3/ScriptReference/SceneManagement.SceneManager.html" target="_blank" rel="noopener nofollow"&gt;
&lt;div class="blogcard-content"&gt;
&lt;span class="blogcard-label blogcard-label--unitydocs"&gt;&lt;i class="fas fa-book" aria-hidden="true"&gt;&lt;/i&gt;Unity Docs&lt;/span&gt;
&lt;div class="blogcard-title"&gt;SceneManagement.SceneManager - Unity スクリプトリファレンス&lt;/div&gt;
&lt;div class="blogcard-site"&gt;docs.unity3d.com&lt;/div&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;そして、シーンを切り替えた時に消えてほしくないオブジェクト（BGMを鳴らす&lt;code&gt;AudioSource&lt;/code&gt;や、各種マネージャークラスなど）を持ち越すには&lt;code&gt;DontDestroyOnLoad&lt;/code&gt;を使います。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DontDestroyOnLoad&lt;/code&gt;は専用の記事で詳しく解説しているので、本記事では&lt;code&gt;SceneManager&lt;/code&gt;を中心に扱います。&lt;/p&gt;
&lt;div class="related-link"&gt;
&lt;div class="related-link-label"&gt;🔗 関連記事&lt;/div&gt;
&lt;div class="related-link-lead"&gt;&lt;code&gt;DontDestroyOnLoad&lt;/code&gt;でオブジェクトを永続化させるには。&lt;/div&gt;
&lt;a class="blogcard-fallback" href="https://garnetcode.jp/blog/2026/08/dont_destroy_on_load/" target="_blank" rel="noopener nofollow"&gt;https://garnetcode.jp/blog/2026/08/dont_destroy_on_load/&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>【Unity】プレハブを極める</title><link>https://garnetcode.jp/blog/2026/06/prefab/</link><pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2026/06/prefab/</guid><description>&lt;h3 id="プレハブとは"&gt;プレハブとは？&lt;/h3&gt;
&lt;p&gt;Unityでゲームを作っていると、同じ構成の&lt;code&gt;GameObject&lt;/code&gt;を何度も使い回したい場面が出てきます。&lt;/p&gt;
&lt;p&gt;例えば敵キャラ、アイテム、UIのボタンなど、同じものを複数配置するケースは日常的にあるはずです。&lt;/p&gt;
&lt;p&gt;プレハブは、&lt;code&gt;GameObject&lt;/code&gt;の構成をアセットとして保存し、テンプレートのように再利用できる仕組みです。&lt;/p&gt;
&lt;p&gt;プレハブを作ると、Projectウィンドウにアセットとして保存されます。&lt;/p&gt;
&lt;p&gt;このアセットが「オリジナル」で、シーン上に配置したものが「インスタンス」です。&lt;/p&gt;
&lt;p&gt;インスタンスはオリジナルと紐付いており、オリジナルを変更するとすべてのインスタンスに反映されます。&lt;/p&gt;
&lt;p&gt;逆にインスタンス側で個別に変更を加えることもでき、その変更はOverrideとして管理されます。&lt;/p&gt;
&lt;p&gt;この仕組みによって、共通部分はオリジナルで一括管理しつつ、個別の調整もできるようになっています。&lt;/p&gt;
&lt;div class="blogcard"&gt;
&lt;a href="https://docs.unity3d.com/ja/2022.3/Manual/Prefabs.html" target="_blank" rel="noopener nofollow"&gt;
&lt;div class="blogcard-content"&gt;
&lt;span class="blogcard-label blogcard-label--unitydocs"&gt;&lt;i class="fas fa-book" aria-hidden="true"&gt;&lt;/i&gt;Unity Docs&lt;/span&gt;
&lt;div class="blogcard-title"&gt;プレハブ - Unity マニュアル&lt;/div&gt;
&lt;div class="blogcard-site"&gt;docs.unity3d.com&lt;/div&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>【Unity】MonoBehaviourライフサイクルイベントの使い分け</title><link>https://garnetcode.jp/blog/2026/06/monobehaviour_lifecycle/</link><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2026/06/monobehaviour_lifecycle/</guid><description>&lt;h3 id="monobehaviourライフサイクルイベントとは"&gt;MonoBehaviourライフサイクルイベントとは？&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;MonoBehaviour&lt;/code&gt;を継承したクラスでは、&lt;code&gt;Awake&lt;/code&gt;や&lt;code&gt;Start&lt;/code&gt;、&lt;code&gt;Update&lt;/code&gt;といった特定のタイミングでUnityエンジンから自動的に呼ばれるメソッドを定義できます。&lt;/p&gt;
&lt;p&gt;これらは「ライフサイクルイベント」と呼ばれ、シーンの開始からオブジェクトの破棄までの一連の流れの中で、決まった順序で呼び出されます。&lt;/p&gt;
&lt;p&gt;本記事では、その中でもよく使う「初期化2兄弟（&lt;code&gt;Awake&lt;/code&gt; / &lt;code&gt;Start&lt;/code&gt;）」と「更新3兄弟（&lt;code&gt;Update&lt;/code&gt; / &lt;code&gt;FixedUpdate&lt;/code&gt; / &lt;code&gt;LateUpdate&lt;/code&gt;）」を取り上げ、それぞれの違いと使い分けを整理します。&lt;/p&gt;
&lt;a class="blogcard-fallback" href="https://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html" target="_blank" rel="noopener nofollow"&gt;https://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html&lt;/a&gt;</description></item><item><title>【Unity】Unityのコールバック</title><link>https://garnetcode.jp/blog/2025/01/monobehaviour_callback/</link><pubDate>Sat, 18 Jan 2025 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2025/01/monobehaviour_callback/</guid><description>&lt;h2 id="コールバックcallbackとは"&gt;コールバック(callback)とは？&lt;/h2&gt;
&lt;p&gt;英語の &amp;ldquo;Callback&amp;rdquo; とは、「呼び戻す」という意味です。&lt;/p&gt;
&lt;p&gt;プログラミングにおけるコールバックとは、関数やメソッドに引数として別の関数を渡し、&lt;/p&gt;
&lt;p&gt;必要なタイミングでその関数を呼び出す仕組みを指します。&lt;/p&gt;
&lt;p&gt;例えば、以下のようなタイミングで使用されます：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;読み込みなどの非同期処理が終了したとき&lt;/li&gt;
&lt;li&gt;サーバーとの通信が完了したとき&lt;/li&gt;
&lt;li&gt;長い効果音の再生が終わったとき&lt;/li&gt;
&lt;li&gt;動画を再生する準備が整ったとき&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>【Unity】ScriptableObjectの使い方｜データをアセット化して管理する</title><link>https://garnetcode.jp/blog/2024/07/scriptable_object/</link><pubDate>Sat, 20 Jul 2024 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2024/07/scriptable_object/</guid><description>&lt;h2 id="scriptableobjectとは"&gt;ScriptableObjectとは？&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ScriptableObject&lt;/code&gt;は、&lt;code&gt;Unity&lt;/code&gt;でデータを管理するための一つの方法です。&lt;/p&gt;
&lt;p&gt;ゲームオブジェクトに依存しないデータを保持したい場合や、複数のゲームオブジェクト間でデータを共有したい場合に使用します。&lt;/p&gt;
&lt;div class="blogcard"&gt;
&lt;a href="https://docs.unity3d.com/ja/2022.3/Manual/class-ScriptableObject.html" target="_blank" rel="noopener nofollow"&gt;
&lt;div class="blogcard-content"&gt;
&lt;span class="blogcard-label blogcard-label--unitydocs"&gt;&lt;i class="fas fa-book" aria-hidden="true"&gt;&lt;/i&gt;Unity Docs&lt;/span&gt;
&lt;div class="blogcard-title"&gt;ScriptableObject - Unity マニュアル&lt;/div&gt;
&lt;div class="blogcard-site"&gt;docs.unity3d.com&lt;/div&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;イメージとしては、&lt;code&gt;MonoBehaviour&lt;/code&gt;を継承したコンポーネントを作成した場合に含まれる、データ部分を抜き出したものです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Start&lt;/code&gt;や&lt;code&gt;Update&lt;/code&gt;のようなライフサイクルイベントは持ちません。&lt;/p&gt;</description></item><item><title>【Unity】GetComponentの使い方｜取得方法・キャッシュ・nullになる原因と対処</title><link>https://garnetcode.jp/blog/2024/07/about_getcomponent/</link><pubDate>Sat, 13 Jul 2024 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2024/07/about_getcomponent/</guid><description>&lt;h2 id="getcomponentメソッド"&gt;GetComponentメソッド&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;UnityEngine&lt;/code&gt;には、&lt;code&gt;GetComponent&lt;/code&gt;というメソッドがあります。&lt;/p&gt;
&lt;p&gt;主に&lt;code&gt;GameObject&lt;/code&gt;にアタッチされているコンポーネントを取得するのに使用します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GameObject&lt;/code&gt;クラス、及び&lt;code&gt;Component&lt;/code&gt;クラス内に実装されているので、&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MonoBehaviour&lt;/code&gt;を継承したコンポーネントクラス内からも呼ぶことが出来ます。&lt;/p&gt;
&lt;div class="blogcard"&gt;
&lt;a href="https://docs.unity3d.com/ja/2022.3/ScriptReference/Component.GetComponent.html" target="_blank" rel="noopener nofollow"&gt;
&lt;div class="blogcard-content"&gt;
&lt;span class="blogcard-label blogcard-label--unitydocs"&gt;&lt;i class="fas fa-book" aria-hidden="true"&gt;&lt;/i&gt;Unity Docs&lt;/span&gt;
&lt;div class="blogcard-title"&gt;Component-GetComponent - Unity スクリプトリファレンス&lt;/div&gt;
&lt;div class="blogcard-site"&gt;docs.unity3d.com&lt;/div&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>【Unity】PlayerPrefsの使い方｜セーブ・ロードの基本と保存先・注意点</title><link>https://garnetcode.jp/blog/2024/04/player_prefs/</link><pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate><guid>https://garnetcode.jp/blog/2024/04/player_prefs/</guid><description>&lt;h2 id="playerprefsとは"&gt;PlayerPrefsとは？&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;PlayerPrefs&lt;/code&gt;は&lt;code&gt;Unity&lt;/code&gt;が用意しているデータをセーブ、ロードするための機能です。
例えば、ゲームの進行度、ゲーム内のオプション設定など、
ゲームを再開した際に再現したいデータの保存などに使えます。
動作中の端末上に保存されファイルを意識しなくても扱えます。
&lt;code&gt;Dictionary&lt;/code&gt;のように、&lt;code&gt;Key&lt;/code&gt;と&lt;code&gt;Value&lt;/code&gt;の形式で、データを読み書き出来ます。&lt;/p&gt;</description></item></channel></rss>