<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>背景 | 怪獣の2Dアクションゲーム制作開発記</title>
	<atom:link href="https://naiterukaiju.com/tag/%E8%83%8C%E6%99%AF/feed/" rel="self" type="application/rss+xml" />
	<link>https://naiterukaiju.com</link>
	<description>Unityでゲームを作る方法を初心者目線で発信👾</description>
	<lastBuildDate>Fri, 01 May 2026 13:02:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://naiterukaiju.com/wp-content/uploads/2025/09/cropped-Enemy-32x32.png</url>
	<title>背景 | 怪獣の2Dアクションゲーム制作開発記</title>
	<link>https://naiterukaiju.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【ゲーム制作進捗#3】夜の街の背景を作って背景をスクロールさせるようにした！</title>
		<link>https://naiterukaiju.com/%e3%80%90%e3%82%b2%e3%83%bc%e3%83%a0%e5%88%b6%e4%bd%9c%e9%80%b2%e6%8d%973%e3%80%91%e5%a4%9c%e3%81%ae%e8%a1%97%e3%81%ae%e8%83%8c%e6%99%af%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92/</link>
					<comments>https://naiterukaiju.com/%e3%80%90%e3%82%b2%e3%83%bc%e3%83%a0%e5%88%b6%e4%bd%9c%e9%80%b2%e6%8d%973%e3%80%91%e5%a4%9c%e3%81%ae%e8%a1%97%e3%81%ae%e8%83%8c%e6%99%af%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92/#respond</comments>
		
		<dc:creator><![CDATA[怪獣]]></dc:creator>
		<pubDate>Sun, 08 Mar 2026 05:34:04 +0000</pubDate>
				<category><![CDATA[夜の街2Dアクションゲーム開発記]]></category>
		<category><![CDATA[2Dゲーム]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity初心者]]></category>
		<category><![CDATA[アクションゲーム]]></category>
		<category><![CDATA[ゲーム制作]]></category>
		<category><![CDATA[ビル]]></category>
		<category><![CDATA[ビル群]]></category>
		<category><![CDATA[夜]]></category>
		<category><![CDATA[夜の街]]></category>
		<category><![CDATA[夜空]]></category>
		<category><![CDATA[夜街]]></category>
		<category><![CDATA[背景]]></category>
		<category><![CDATA[背景スクロール]]></category>
		<guid isPermaLink="false">https://naiterukaiju.com/?p=878</guid>

					<description><![CDATA[こんにちは！夜の街2Dアクションゲームを制作中の怪獣と申します🦖 かなり前回の進捗記事から時間が経ってしまいましたが、、本日は自作ゲームの進捗報告になります。 目次 ①ビル群の背景を作成②背景をスクロール対応に③背景スク [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは！<br>夜の街2Dアクションゲームを制作中の怪獣と申します🦖<br><br>かなり前回の進捗記事から時間が経ってしまいましたが、、<br>本日は自作ゲームの進捗報告になります。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">①ビル群の背景を作成</a></li><li><a href="#toc2" tabindex="0">②背景をスクロール対応に</a></li><li><a href="#toc3" tabindex="0">③背景スクロールの実装方法は別記事で紹介</a></li><li><a href="#toc4" tabindex="0">④まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">①ビル群の背景を作成</span></h2>



<p>今回のゲームは夜の街が舞台なので、ステージの雰囲気作りのためにビル群の背景を作成しました🌃<br>プレイヤーがビルの上を移動していくゲームなので、背景にも街らしさや高さを感じられる見た目を意識しています。<br>また、手前のビル1、奥のビル2でレイヤーを分けて奥行き感を出すようにしています！</p>



<video
  src="https://naiterukaiju.com/wp-content/uploads/2026/03/ナイトウォーク-Main-Windows-Mac-Linux-Unity-2021.3.6f1-Personal-_DX11_-2026-03-08-14-22-45-Trim.mp4"
  autoplay
  loop
  muted
  playsinline
  width="640"
  height="360">
</video



<p></p>



<h2 class="wp-block-heading"><span id="toc2">②背景をスクロール対応に</span></h2>



<p>背景画像を置いただけの状態だと背景が置いてきぼりになってしまうので、<br>プレイヤーの歩行に合わせて背景もスクロールするように実装しました。</p>



<p>これによって、画面に動きが出てステージに広がりを感じやすくなりました。<br>見た目の変化だけでなく、ゲームらしい雰囲気もかなり出てきたと思います！</p>



<h2 class="wp-block-heading"><span id="toc3">③背景スクロールの実装方法は別記事で紹介</span></h2>



<p>背景スクロールの実装方法については別記事でまとめています。<br>コードや設定方法を知りたい方は、こちらの記事をご覧ください！</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-unity-2-d wp-block-embed-unity-2-d"><div class="wp-block-embed__wrapper">

<a href="https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ae%e3%80%91%e6%ad%a9%e8%a1%8c%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%95/" title="【Unity入門⑮】歩行に合わせて背景をスクロールさせよう！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-160x90.png 160w, https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-120x68.png 120w, https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Unity入門⑮】歩行に合わせて背景をスクロールさせよう！</div><div class="blogcard-snippet internal-blogcard-snippet">前回の記事では、ゴールに触れたらゲームクリアUIを表示させる方法を解説しました。今回は歩行に合わせて背景画像をスクロールさせる方法 を解説します！背景があるだけでよりゲームらしさがグッと増して、世界観が一気に広がりますよね！ただ背景を用意す...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://naiterukaiju.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">naiterukaiju.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.02.17</div></div></div></div></a>
</div></figure>



<h2 class="wp-block-heading"><span id="toc4">④まとめ</span></h2>



<p>今回は、ビル群の背景制作と背景スクロールの実装を進めました。<br>背景まわりが整ってきたことで、ゲーム全体の雰囲気もかなり見えてきた気がします！</p>



<p>かなりスローペースで進めていますが、<br>いずれリリース出来るように引き続きゲーム制作を進めていこうと思います🫡</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://naiterukaiju.com/%e3%80%90%e3%82%b2%e3%83%bc%e3%83%a0%e5%88%b6%e4%bd%9c%e9%80%b2%e6%8d%973%e3%80%91%e5%a4%9c%e3%81%ae%e8%a1%97%e3%81%ae%e8%83%8c%e6%99%af%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://naiterukaiju.com/wp-content/uploads/2026/03/ナイトウォーク-Main-Windows-Mac-Linux-Unity-2021.3.6f1-Personal-_DX11_-2026-03-08-14-22-45-Trim.mp4" length="12043311" type="video/mp4" />

			</item>
		<item>
		<title>【Unity入門⑮】歩行に合わせて背景をスクロールさせよう！</title>
		<link>https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ae%e3%80%91%e6%ad%a9%e8%a1%8c%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%95/</link>
					<comments>https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ae%e3%80%91%e6%ad%a9%e8%a1%8c%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%95/#respond</comments>
		
		<dc:creator><![CDATA[怪獣]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 13:45:31 +0000</pubDate>
				<category><![CDATA[Unity2D入門（シリーズ）]]></category>
		<category><![CDATA[2Dゲーム]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity初心者]]></category>
		<category><![CDATA[アクションゲーム]]></category>
		<category><![CDATA[ゲーム制作]]></category>
		<category><![CDATA[スクロール]]></category>
		<category><![CDATA[マップ]]></category>
		<category><![CDATA[画像]]></category>
		<category><![CDATA[背景]]></category>
		<guid isPermaLink="false">https://naiterukaiju.com/?p=723</guid>

					<description><![CDATA[前回の記事では、ゴールに触れたらゲームクリアUIを表示させる方法を解説しました。 今回は歩行に合わせて背景画像をスクロールさせる方法 を解説します！ 背景があるだけでよりゲームらしさがグッと増して、世界観が一気に広がりま [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-10 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://naiterukaiju.com/wp-content/uploads/2026/04/9327DB85-EFD6-4A95-A63A-1FA1F0A35E85.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>こんにちは！夜の街2Dアクションゲームを制作中の怪獣です🦖</p>
</div></div>



<p>前回の記事では、ゴールに触れたらゲームクリアUIを表示させる方法を解説しました。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-prev">

<a href="https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ad%e3%80%91%e3%82%b4%e3%83%bc%e3%83%ab%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%9f%e3%82%89%e3%82%b2%e3%83%bc%e3%83%a0%e3%82%af%e3%83%aa%e3%82%a2%ef%bc%81%e3%82%b4/" title="【Unity入門⑭】ゴールに触れたらゲームクリア！ゴールUIを表示しよう" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-160x90.png 160w, https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-120x68.png 120w, https://naiterukaiju.com/wp-content/uploads/2025/11/Unityで2Dアクションゲームを作ろう！-1-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Unity入門⑭】ゴールに触れたらゲームクリア！ゴールUIを表示しよう</div><div class="blogcard-snippet internal-blogcard-snippet">前回の記事では、落下したらゲームオーバーにさせる実装方法の解説をしました。今回は、プレイヤーがゴールオブジェクトに触れたら「ゲームクリアUI」を表示する方法を解説します。ゲームでは、「敵に当たったらゲームオーバー」、「ゴールにたどり着いたら...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://naiterukaiju.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">naiterukaiju.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.01.18</div></div></div></div></a>
</div>



<p><br><br>今回は歩行に合わせて<strong><span class="marker-under-red">背景画像をスクロールさせる方法</span></strong> を解説します！<br><br>背景があるだけでよりゲームらしさがグッと増して、世界観が一気に広がりますよね！<br>ただ背景を用意するだけではプレイヤーが移動した際に背景画像が置いてきぼりになってしまうので、<br><strong>歩行に合わせて背景をスクロール</strong>させるようにします！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">この記事でやること</a></li><li><a href="#toc2" tabindex="0">① 背景オブジェクトを作成する</a><ol><li><a href="#toc3" tabindex="0">背景画像を配置する</a></li><li><a href="#toc4" tabindex="0">Sorting Layer を追加する</a></li><li><a href="#toc5" tabindex="0">レイヤーの描画順番を設定する</a></li><li><a href="#toc6" tabindex="0">背景の位置を調整する</a></li></ol></li><li><a href="#toc7" tabindex="0">②背景の子オブジェクトを作成（左側用・右側用）</a><ol><li><a href="#toc8" tabindex="0">Left / Right に背景画像を複製する</a></li></ol></li><li><a href="#toc9" tabindex="0">③背景スクロール用スクリプトを作成</a><ol><li><a href="#toc10" tabindex="0">各処理の説明：なにをしている？</a></li><li><a href="#toc11" tabindex="0">Start() で初期値を準備</a></li><li><a href="#toc12" tabindex="0">FixedUpdate() で一定間隔で実行</a></li><li><a href="#toc13" tabindex="0"> _Parallax() が本体（視差＋ループ）</a></li><li><a href="#toc14" tabindex="0">画像が途切れない“無限ループ”判定</a></li></ol></li><li><a href="#toc15" tabindex="0">④ Unity上で設定する</a></li><li><a href="#toc16" tabindex="0">動作確認</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">この記事でやること</span></h2>



<p>✅ 背景オブジェクトを作る<br>✅ 背景スクロール用スクリプトを作る<br>✅ プレイヤーの動きに合わせて背景を動かす</p>



<video
  src="https://naiterukaiju.com/wp-content/uploads/2026/02/無題のビデオ-‐-Clipchampで作成-13.mp4"
  autoplay
  loop
  muted
  playsinline
  width="640"
  height="360">
</video



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2">① 背景オブジェクトを作成する</span></h2>



<p>まずは背景画像をHierarchy上に配置していきます！</p>



<p>⇩背景画像はこちらを使用しています</p>





<a rel="noopener" href="https://assetstore.unity.com/packages/2d/environments/free-2d-cartoon-parallax-background-205812" title="Free 2D Cartoon Parallax Background | 2D Environments | Unity Asset Store" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://naiterukaiju.com/wp-content/uploads/cocoon-resources/blog-card-cache/2cb07b9ade205805b0080e2164502598.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Free 2D Cartoon Parallax Background | 2D Environments | Unity Asset Store</div><div class="blogcard-snippet external-blogcard-snippet">Elevate your workflow with the Free 2D Cartoon Parallax Background asset from CPasteGame. Find this &amp; more Environments ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://assetstore.unity.com/packages/2d/environments/free-2d-cartoon-parallax-background-205812" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">assetstore.unity.com</div></div></div></div></a>




<h3 class="wp-block-heading"><span id="toc3">背景画像を配置する</span></h3>



<p>１．Hierarchyに背景画像をドラッグする</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="488" src="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-35-1.png" alt="背景画像をドラッグ" class="wp-image-731" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-35-1.png 1000w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-35-1-300x146.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-35-1-768x375.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>２．各背景の名前を変更します</p>



<p>（ここではSky、Cloud、Mountainにします。）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="369" src="https://naiterukaiju.com/wp-content/uploads/2026/02/image-5-1024x369.png" alt="背景の名前を変更" class="wp-image-733" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/image-5-1024x369.png 1024w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-5-300x108.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-5-768x277.png 768w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-5-1536x554.png 1536w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-5.png 1914w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">Sorting Layer を追加する</span></h3>



<p>2Dゲームでは、<br>画像の<strong>表示の前後関係は Sorting Layer で管理します。</strong></p>



<p>■ Sorting Layer を作る手順</p>



<ol class="wp-block-list">
<li>背景オブジェクトを選択</li>



<li>Inspector → SpriteRenderer</li>



<li>Sorting Layer → Add Sorting Layer&#8230;</li>
</ol>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="470" src="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-36-1.png" alt="Add Sorting Layerを選択" class="wp-image-735" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-36-1.png 1000w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-36-1-300x141.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-36-1-768x361.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>すると以下画面が開きます。<br>＋ボタンクリックし、新しいレイヤー名<span class="marker-under-red"><strong>BG</strong>（background）を追加</span><span class="marker-under-red">します。</span><br><span class="marker-under-red">追加したレイヤーを一番上に持ってきて、<strong>Layer0に</strong>なるようにします。</span></p>



<p>レイヤーは上にあるほど<strong>「奥」</strong>の扱いになります。<br>今回は背景画像なので、一番奥に設定します！</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="428" height="363" src="https://naiterukaiju.com/wp-content/uploads/2026/02/スクリーンショット-2026-02-15-201212.png" alt="レイヤーの設定" class="wp-image-737" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/スクリーンショット-2026-02-15-201212.png 428w, https://naiterukaiju.com/wp-content/uploads/2026/02/スクリーンショット-2026-02-15-201212-300x254.png 300w" sizes="(max-width: 428px) 100vw, 428px" /></figure>



<p>追加したら、<strong><span class="marker-under-red">それぞれの背景オブジェクト全て</span></strong><span class="marker-under-red">に（Sky、Cloud、Mountain、Mountain2）のSorting LayerにBGを設定</span>します。</p>



<p><strong>Sorting Layer ：BG</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="492" src="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-37-1.png" alt="BGの設定" class="wp-image-741" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-37-1.png 1000w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-37-1-300x148.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-37-1-768x378.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc5">レイヤーの描画順番を設定する</span></h3>



<p>このままだと背景の描画順が同じレベルになっており、全て表示が出来ていないので、<br>お絵描きソフトのレイヤー機能のように、画像の描画順番を設定します！<br><br>以下のように設定します。<br>■レイヤー順<br>①山<br>　∟②山２<br>　　∟③雲<br>　　　∟④空<br>①←　レイヤーが手前　レイヤーが奥→④</p>



<ul class="wp-block-list">
<li>Sky
<ul class="wp-block-list">
<li>Order in Layer：-4</li>
</ul>
</li>



<li>Cloud
<ul class="wp-block-list">
<li>Order in Layer：-3</li>
</ul>
</li>



<li>Mountain
<ul class="wp-block-list">
<li>Order in Layer：-2</li>
</ul>
</li>



<li>Mountain2
<ul class="wp-block-list">
<li>Order in Layer：-1</li>
</ul>
</li>
</ul>



<p></p>



<h3 class="wp-block-heading"><span id="toc6">背景の位置を調整する</span></h3>



<p>Inspector の Transform を以下のように調整します。</p>



<ul class="wp-block-list">
<li>Position：<code>(0, 0, 0)</code>（まずは0でOK）</li>



<li>Scale：必要に応じて調整（背景が画面に合うように）</li>
</ul>



<h2 class="wp-block-heading"><span id="toc7">②背景の子オブジェクトを作成（左側用・右側用）</span></h2>



<p>①で背景を作成した状態のままだと、画像の端っこに移動した際に背景が足りなくて見切れてしまうため、更に拡大していきます。<br>ここで、<span class="marker-under-red"><strong>①で作った親の背景オブジェクトに対して、子オブジェクトを作成</strong></span>します。<br>背景オブジェクトの下に <strong>左右の背景</strong> を子として持たせておくことで、後で「無限スクロール」に拡張しやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc8">Left / Right に背景画像を複製する</span></h3>



<p>①で作成した背景を親オブジェクトとし、親に対して子オブジェクトを複製します。<br><br>■Skyオブジェクトの作成例</p>



<ol class="wp-block-list">
<li>いまシーン上にあるSkyオブジェクトをコピペして、<br> Skyオブジェクト配下に子として２つ複製する</li>



<li>片方を <code>Left</code>、もう片方を <code>Right</code> と命名</li>



<li><strong>Left</strong>
<ul class="wp-block-list">
<li>Postion：40に変更（※各自の画像サイズに要調整）</li>
</ul>
</li>



<li><code><strong>Right</strong></code>
<ul class="wp-block-list">
<li>Postion：40に変更（※各自の画像サイズに要調整）</li>
</ul>
</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>こうすることで、 左右に背景が拡張されます！ <br>また、親オブジェクトからコピペして貼り付けることで、①で設定した<strong>Sorting Layer </strong>、<strong>Order in Layer</strong>の設定を引き継いだ状態にすることができます✨</p>
</blockquote>



<p>■<strong>Left</strong>の設定</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="493" src="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-39-2.png" alt="子オブジェクトの設定（Left）" class="wp-image-745" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-39-2.png 1000w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-39-2-300x148.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-39-2-768x379.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>■<strong><code><strong>Right</strong></code></strong>の設定</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="486" src="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-38-2.png" alt="子オブジェクトの設定（right）" class="wp-image-744" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-38-2.png 1000w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-38-2-300x146.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-38-2-768x373.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>■設定後のScene画面↓</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="208" src="https://naiterukaiju.com/wp-content/uploads/2026/02/image-6-1024x208.png" alt="背景全体" class="wp-image-752" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/image-6-1024x208.png 1024w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-6-300x61.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-6-768x156.png 768w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-6-1536x312.png 1536w, https://naiterukaiju.com/wp-content/uploads/2026/02/image-6.png 1609w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong><span class="marker-under-red">同じように、Sky、Cloud、Mountain、Mountain2も子として複製します。</span></strong></p>



<h2 class="wp-block-heading"><span id="toc9">③背景スクロール用スクリプトを作成</span></h2>



<ol class="wp-block-list">
<li>Projectビューで右クリック</li>



<li>Create → C# Script</li>



<li>名前を <code>BackgroundScroller</code>.csにします</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BackgroundScroller : MonoBehaviour
{
    // Range：最小値と最大値を決めれる
    &#91;SerializeField, Header("視差効果"), Range(0, 1)&#93;
    private float _parallaxEffect;

    private GameObject _camera;
    private float _length;
    private float _startPosX;

    // Start is called before the first frame update
    void Start()
    {
        _startPosX = transform.position.x;
        // 画像の横幅のサイズを取得
        _length = GetComponent&lt;SpriteRenderer>().bounds.size.x;
        _camera = Camera.main.gameObject;

    }

    // Unity上のメソッド
    // 設定した一定時間で実行されるメソッド
    private void FixedUpdate()
    {
        _Parallax();
    }

    private void _Parallax()
    {
        // カメラとの距離を代入
        float temp = _camera.transform.position.x * (1 - _parallaxEffect);
        float dist = _camera.transform.position.x * _parallaxEffect;

        transform.position = new Vector3(_startPosX + dist, transform.position.y, transform.position.z);

        // カメラとの距離が画像の横幅分離れたら位置をカメラの座標に移動させることで
        // 画像が途切れずにループしているように見える
        if (temp > _startPosX + _length)
        {
            _startPosX += _length;
        }
        else if (temp &lt; _startPosX - _length)
        {
            _startPosX -= _length;
        }
    }
}
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">using</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">System</span><span style="color: #D4D4D4">.Collections;</span></span>
<span class="line"><span style="color: #569CD6">using</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">System</span><span style="color: #D4D4D4">.Collections.Generic;</span></span>
<span class="line"><span style="color: #569CD6">using</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">UnityEngine</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #9CDCFE">public</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">class</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">BackgroundScroller</span><span style="color: #D4D4D4"> : </span><span style="color: #4EC9B0">MonoBehaviour</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Range：最小値と最大値を決めれる</span></span>
<span class="line"><span style="color: #D4D4D4">    &#91;</span><span style="color: #9CDCFE">SerializeField</span><span style="color: #D4D4D4">, </span><span style="color: #DCDCAA">Header</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;視差効果&quot;</span><span style="color: #D4D4D4">), </span><span style="color: #DCDCAA">Range</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)&#93;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_parallaxEffect</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">GameObject</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Start is called before the first frame update</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Start</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">    {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// 画像の横幅のサイズを取得</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">GetComponent</span><span style="color: #D4D4D4">&lt;</span><span style="color: #4EC9B0">SpriteRenderer</span><span style="color: #D4D4D4">&gt;().</span><span style="color: #9CDCFE">bounds</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">size</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Camera</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">main</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">gameObject</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Unity上のメソッド</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// 設定した一定時間で実行されるメソッド</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">FixedUpdate</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">    {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">_Parallax</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">_Parallax</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">    {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// カメラとの距離を代入</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">temp</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> * (</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">_parallaxEffect</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">dist</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">_parallaxEffect</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Vector3</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> + </span><span style="color: #9CDCFE">dist</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">z</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// カメラとの距離が画像の横幅分離れたら位置をカメラの座標に移動させることで</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// 画像が途切れずにループしているように見える</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">temp</span><span style="color: #D4D4D4"> &gt; </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> + </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">        {</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> += </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">        }</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #C586C0">else</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">temp</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">        {</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> -= </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">        }</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc10">各処理の説明：なにをしている？</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>&#91;SerializeField, Header("視差効果"), Range(0, 1)&#93;
private float _parallaxEffect;
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SerializeField</span><span style="color: #D4D4D4">, </span><span style="color: #DCDCAA">Header</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;視差効果&quot;</span><span style="color: #D4D4D4">), </span><span style="color: #DCDCAA">Range</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)&#93;</span></span>
<span class="line"><span style="color: #9CDCFE">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_parallaxEffect</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<ul class="wp-block-list">
<li><code>SerializeField</code>：Unity上のInspectorで数値をいじれるようにします</li>



<li><code>Header</code>：Inspector上に見出しを出す</li>



<li><code>Range(0,1)</code>：スライダーで <strong>0〜1</strong> の範囲で調整できるようにする</li>
</ul>



<p>✅ これにより「背景がどれくらいカメラについてくるか（視差）」をスライダーで調整できます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc11">Start() で初期値を準備</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>_startPosX = transform.position.x;
_length = GetComponent&lt;SpriteRenderer>().bounds.size.x;
_camera = Camera.main.gameObject;
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">GetComponent</span><span style="color: #D4D4D4">&lt;</span><span style="color: #4EC9B0">SpriteRenderer</span><span style="color: #D4D4D4">&gt;().</span><span style="color: #9CDCFE">bounds</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">size</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Camera</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">main</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">gameObject</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading"><code>_startPosX</code></h4>



<p>背景の「基準となる開始位置X」です。<br>あとでループ処理で、この基準を <strong>横幅分ずらす</strong>のに使います。</p>



<h4 class="wp-block-heading"><code>_length</code></h4>



<p><code>SpriteRenderer.bounds.size.x</code> で <strong>背景画像の“ワールド上の横幅”</strong> を取得します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>重要：ここで取っているのは「ピクセル数」ではなく<br><strong>Unity空間（ワールド座標）の幅</strong>です。<br>（Pixels Per Unit の設定により値は変わります）</p>
</blockquote>



<h4 class="wp-block-heading"><code>_camera</code></h4>



<p><code>Camera.main</code> は「MainCameraタグが付いたカメラ」を取ってきます。<br>背景は <strong>カメラの位置を基準に動く</strong>ので参照が必要です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc12">FixedUpdate() で一定間隔で実行</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>private void FixedUpdate()
{
    _Parallax();
}
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">private</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">FixedUpdate</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">_Parallax</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span></code></pre></div>



<p><code>FixedUpdate</code> は <strong>一定時間ごと</strong>に呼ばれる更新関数です。<br>（主に物理計算のタイミング）</p>



<p>このコードでは背景移動を <code>FixedUpdate</code> に載せています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>背景は物理ではないので、一般的には <code>LateUpdate</code> でもOKです。<br>ただ「カメラがRigidbodyで動く」などの場合は FixedUpdate 運用もアリです。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc13"> _Parallax() が本体（視差＋ループ）</span></h3>



<h4 class="wp-block-heading">カメラ位置から2つの値を作る</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>float temp = _camera.transform.position.x * (1 - _parallaxEffect);
float dist = _camera.transform.position.x * _parallaxEffect;
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">temp</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> * (</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">_parallaxEffect</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #9CDCFE">float</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">dist</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">_camera</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">_parallaxEffect</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>ここが最重要です。</p>



<ul class="wp-block-list">
<li><code>dist</code>：<strong>背景を動かす量（視差ぶん）</strong></li>



<li><code>temp</code>：<strong>ループ判定に使う量</strong></li>
</ul>



<p><code>_parallaxEffect</code> が 0.3 なら、</p>



<ul class="wp-block-list">
<li>dist = カメラX * 0.3（背景はカメラの30%だけ動く）</li>



<li>temp = カメラX * 0.7（残り側の値）</li>
</ul>



<p>という形になります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">背景を実際に動かす</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>transform.position = new Vector3(_startPosX + dist, transform.position.y, transform.position.z);
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Vector3</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> + </span><span style="color: #9CDCFE">dist</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">transform</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">position</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">z</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span></code></pre></div>



<p>背景のX座標を</p>



<ul class="wp-block-list">
<li><strong>開始位置 <code>_startPosX</code></strong></li>



<li><strong>視差分 <code>dist</code></strong></li>
</ul>



<p>で決めています。</p>



<p>つまり、</p>



<p>✅ カメラが右に動く<br>✅ 背景も右に動くけど、<code>_parallaxEffect</code> が小さいほどゆっくり<br>→ 「奥行きがある」ように見える</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">画像が途切れない“無限ループ”判定</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>if (temp > _startPosX + _length)
{
    _startPosX += _length;
}
else if (temp &lt; _startPosX - _length)
{
    _startPosX -= _length;
}
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">temp</span><span style="color: #D4D4D4"> &gt; </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> + </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> += </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"><span style="color: #C586C0">else</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">temp</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">_startPosX</span><span style="color: #D4D4D4"> -= </span><span style="color: #9CDCFE">_length</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span></code></pre></div>



<p>ここは「背景がカメラから一定距離離れたら、基準位置を横幅分ずらす」処理です。</p>



<ul class="wp-block-list">
<li>カメラが進み続けると、背景はいつか端が見えてしまう</li>



<li>そこで、背景の“基準位置” <code>_startPosX</code> を <strong>横幅 <code>_length</code> 分だけ移動</strong></li>



<li>結果、背景が途切れずループしているように見えます</li>
</ul>



<p>この「基準位置をずらす」方式は、見た目が自然で便利です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc15">④ Unity上で設定する</span></h2>



<p><code>「Sky、Cloud、Mountain、Mountain2」</code> をまとめて選択し、Add Componentをクリックし③で作成した<strong>BackgroundScroller.cs</strong>を適用します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="622" src="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-40-1.png" alt="BackgroundScroller.csの適用" class="wp-image-746" srcset="https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-40-1.png 1000w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-40-1-300x187.png 300w, https://naiterukaiju.com/wp-content/uploads/2026/02/↑作成したUIをドラッグする-40-1-768x478.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc16">動作確認</span></h2>



<video
  src="https://naiterukaiju.com/wp-content/uploads/2026/02/無題のビデオ-‐-Clipchampで作成-13.mp4"
  autoplay
  loop
  muted
  playsinline
  width="640"
  height="360">
</video



<p>➡️背景が歩行に合わせて少しずつ移動しているのが分かりますね‼️</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-10 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://naiterukaiju.com/wp-content/uploads/2026/04/9327DB85-EFD6-4A95-A63A-1FA1F0A35E85.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>最後まで読んでいただきありがとうございました！</p>
</div></div>



<p>この記事が少しでもゲーム制作のお役に立てたらうれしいです🦖</p>



<p>今回やったこと：</p>



<p>✔ 背景オブジェクト作成<br>✔ スクリプト作成<br>✔ プレイヤーの動きに合わせてスクロール</p>



<p>これだけでゲームの完成度が一気に上がりますね！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ae%e3%80%91%e6%ad%a9%e8%a1%8c%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e8%83%8c%e6%99%af%e3%82%92%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%95/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://naiterukaiju.com/wp-content/uploads/2026/02/無題のビデオ-‐-Clipchampで作成-13.mp4" length="17910695" type="video/mp4" />

			</item>
		<item>
		<title>【ゲーム制作進捗#1】夜空のグラデーション背景を作った！青線トラブルも解決</title>
		<link>https://naiterukaiju.com/%e3%80%90unity%e9%80%b2%e6%8d%97%e3%80%91%e5%a4%9c%e7%a9%ba%e3%81%ae%e3%82%b0%e3%83%a9%e3%83%87%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e8%83%8c%e6%99%af%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%9f%ef%bc%81/</link>
					<comments>https://naiterukaiju.com/%e3%80%90unity%e9%80%b2%e6%8d%97%e3%80%91%e5%a4%9c%e7%a9%ba%e3%81%ae%e3%82%b0%e3%83%a9%e3%83%87%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e8%83%8c%e6%99%af%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%9f%ef%bc%81/#respond</comments>
		
		<dc:creator><![CDATA[怪獣]]></dc:creator>
		<pubDate>Sun, 26 Oct 2025 06:02:59 +0000</pubDate>
				<category><![CDATA[夜の街2Dアクションゲーム開発記]]></category>
		<category><![CDATA[2Dゲーム]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity初心者]]></category>
		<category><![CDATA[アクションゲーム]]></category>
		<category><![CDATA[グラデーション]]></category>
		<category><![CDATA[ゲーム制作]]></category>
		<category><![CDATA[夜の街]]></category>
		<category><![CDATA[夜空]]></category>
		<category><![CDATA[背景]]></category>
		<category><![CDATA[青線]]></category>
		<guid isPermaLink="false">https://naiterukaiju.com/?p=325</guid>

					<description><![CDATA[こんにちは！怪獣です🦖 最近はUnityのノウハウ系の記事ばかり書いていて、進捗記事がすっかりご無沙汰になっていました。。今回はゲーム制作の進捗報告です！ 目次 夜空のグラデーション背景を作成した 作業中のトラブル：青い [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは！怪獣です🦖</p>



<p>最近はUnityのノウハウ系の記事ばかり書いていて、進捗記事がすっかりご無沙汰になっていました。。<br>今回は<strong>ゲーム制作の進捗報告</strong>です！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">夜空のグラデーション背景を作成した</a></li><li><a href="#toc2" tabindex="0"> 作業中のトラブル：青い線が出てしまう！</a></li><li><a href="#toc3" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">夜空のグラデーション背景を作成した</span></h2>



<p>本作の舞台は「夜の街」なので、背景も夜空をベースにしています。<br>プレイヤーが<strong>ビルの屋上から屋上へと移動</strong>するため、高低差が大きく、一枚の画像をそのまま使い回すのはあまり現実的ではないと思い。。（※実装方法によっては工夫できるかもしれませんが）。</p>



<p>そこで、<strong>複数の夜空画像を組み合わせて、一枚の連続した背景に見えるよう</strong>に作成しました！</p>



<video
  src="https://naiterukaiju.com/wp-content/uploads/2025/10/無題のビデオ-‐-Clipchampで作成-7.mp4"
  autoplay
  loop
  muted
  playsinline
  width="640"
  height="360">
</video



<p><br>縦長の画像を下に一枚と、その上に長方形の暗い夜空の画像を重ねて一枚ぽく見せてます。<br><span class="fz-14px">（まだよーく見ると境目が少し目立つ）</span></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2"> 作業中のトラブル：青い線が出てしまう！</span></h2>



<p>画像を重ねたとき、<strong>境界に青い線</strong>が表示されるトラブルが発生しました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="693" height="223" src="https://naiterukaiju.com/wp-content/uploads/2025/10/スクリーンショット-2025-10-26-135116.png" alt="" class="wp-image-335" srcset="https://naiterukaiju.com/wp-content/uploads/2025/10/スクリーンショット-2025-10-26-135116.png 693w, https://naiterukaiju.com/wp-content/uploads/2025/10/スクリーンショット-2025-10-26-135116-300x97.png 300w" sizes="(max-width: 693px) 100vw, 693px" /></figure>



<p>調べてみたところ、原因は<strong>Textureの「Wrap Mode」設定</strong>。<br>初期状態では「Repeat」になっていたため、端のピクセルが繰り返されて線のように見えていたようです。。</p>



<p>→「<strong>Clamp</strong>」に変更することで無事解決しました！</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="418" height="865" src="https://naiterukaiju.com/wp-content/uploads/2025/10/スクリーンショット-2025-10-26-145524.png" alt="" class="wp-image-336" srcset="https://naiterukaiju.com/wp-content/uploads/2025/10/スクリーンショット-2025-10-26-145524.png 418w, https://naiterukaiju.com/wp-content/uploads/2025/10/スクリーンショット-2025-10-26-145524-145x300.png 145w" sizes="(max-width: 418px) 100vw, 418px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc3">まとめ</span></h2>



<ul class="wp-block-list">
<li>背景は複数の夜空画像を組み合わせて制作した</li>



<li>Wrap Mode を「Clamp」に変更して青線問題を解決</li>
</ul>



<p>それではまた次の進捗で👋</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://naiterukaiju.com/%e3%80%90unity%e9%80%b2%e6%8d%97%e3%80%91%e5%a4%9c%e7%a9%ba%e3%81%ae%e3%82%b0%e3%83%a9%e3%83%87%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e8%83%8c%e6%99%af%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%9f%ef%bc%81/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://naiterukaiju.com/wp-content/uploads/2025/10/無題のビデオ-‐-Clipchampで作成-7.mp4" length="13575133" type="video/mp4" />

			</item>
	</channel>
</rss>
