見出し画像

unityで遊ぶ アセット読解 10x10 Puzzle - Mobile Game Template

アセットストアで見つけた、広告付きのパズルゲームのアセット。
ブロックを並べると消える。

アセットを買って、読解していくnoteです。
主に自分用まとめ。

アセットを読解して、知りたい箇所って?

読解して「何を知りたいか」「何ができるようになりたいか」をブレスト。
知りたいこと、できるようになりたいことが僕と重なる方は、ぜひ続きをどうぞ。

知りたいこと

・ゲームオブジェクトのラインナップ
・UIとか、ブロックの画像のカスタマイズ方法
・ゲームスクリプトの中身って?
・クラス関係ってどうなっている?

できるようになりたいこと

・ゲームエンジンUnityでのゲーム開発
・広告(Unity Ads)の実装


10x10 Puzzle - Mobile Game Template

紹介動画

https://www.youtube.com/watch?v=KEYGh1lWz50&feature=youtu.be

概要と遊び方

10x10 Puzzle is an example of ready for production mobile game. It is a fun casual game. It is compatible with mobile (iOS iPhone and iPad, Android, Windows Mobile) standalone (Windows PC and Mac OSX), web player and webGL.
How to play?
There are 10×10 square grid and Tetris style pieces. Simply try to fit pieces into the grid. Your mission is to complete vertical or horizontal lines to clear blocks. Complete a line either vertically or horizontally and they disappear.

https://assetstore.unity.com/packages/templates/packs/10x10-puzzle-mobile-game-template-156075

概要:

10x10 Puzzleは、すぐに製品化できるモバイルゲームのテンプレートです。 楽しいカジュアルゲームです。 モバイル環境 (iOS iPhone および iPad、Android、Windows Mobile) 、および、スタンドアロン 環境(Windows PC および Mac OSX)、Web プレーヤー、および webGL上で動作します。

遊び方:

縦10、横10のグリッド上で、テトリスタイプのブロックを並べて消すゲームです。
ブロックをグリッドに合わせてみてください。 あなたの使命は、ブロックをクリアするために垂直方向または水平方向にブロックを埋めることです。 縦または横のグリッドが全て埋まるとブロックが消え、ポイントをGETします。

アセット内容

アセットのフォルダ構成はこんな感じ。

$ tree -d /Users/shinmr/Puzzle/Assets/
/Users/shinmr/Puzzle/Assets/
├── Adaptive Performance
│   └── Settings
├── Editor
│   └── com.unity.mobile.notifications
├── PuzzleGame
│   ├── Animations
│   │   ├── 1010
│   │   └── Field
│   ├── Editor
│   ├── Fonts
│   ├── Prefabs
│   │   ├── Bricks
│   │   └── GameControllers
│   ├── Resources
│   │   ├── Games
│   │   ├── SpritesCollections
│   │   └── Themes
│   │       ├── 1010
│   │       └── Shared
│   ├── Scenes
│   ├── Scripts 
│   ├── Sounds
│   └── Sprites
│       └── Fruits
├── Resources
├── Scenes
└── TutorialInfo
    ├── Icons
    └── Scripts
        └── Editor

ReadMe

ReadMeがあるので読んでみる。
対象ファイル:README.rtf

$ tree -d /Users/shinmr/Puzzle/Assets/
/Users/shinmr/Puzzle/Assets/
├── Adaptive Performance
│   └── Settings
├── Editor
│   └── com.unity.mobile.notifications
├── PuzzleGame
│   ├── Animations
│   │   ├── 1010
│   │   └── Field
│   ├── Editor
│   ├── Fonts
│   ├── Prefabs
│   │   ├── Bricks
│   │   └── GameControllers
│   ├── Prefabs.meta
│   ├── README.rtf        < -- ReadMe:使い方が書いてあるっぽい
│   ├── README.rtf.meta
│   ├── Resources
│   │   ├── Games
│   │   ├── SpritesCollections
│   │   └── Themes
│   │       ├── 1010
│   │       └── Shared
│   ├── Scenes
│   ├── Scripts 
│   ├── Sounds
│   └── Sprites
│       └── Fruits
├── Resources
├── Scenes
└── TutorialInfo
    ├── Icons
    └── Scripts
        └── Editor

Getting Started

Open Package Manager by clicking Window/PackageManager.
Install package Ads 3.3.0 or higher.
Open Services by clicking Window/General/Services.
Enable Ads.
Copy monetization GameIds from your Unity Dashboard to Prefabs/UnityAdsInitializer.prefab.

[ウィンドウ/パッケージ マネージャー] をクリックして、パッケージ マネージャーを開きます。
パッケージ 「Ads」を インストールします。バージョンは3.3.0 以降が必要す。

[ウィンドウ]、[一般]、[サービス] の順にクリックして、[サービス] を開きます。
AdsのON/OFFボタンを押下し、広告を有効にします。
Unity ダッシュボードでGame Idを確認し、Prefabs/UnityAdsInitializer.prefab にコピーします。

This game works only on a single scene which is Game.
Open Game scene and click play to start.

このゲームは、「Game」という名称の単一のシーンで遊びます。
ゲームシーンを開き、「play」ボタン をクリックして開始します。

You can build project on any platform.

どのプラットフォームでもプロジェクトをビルドできます。

Customization

Modify Prefabs/Brick.prefab to change font, color or sprite of a tile.
Modify Prefabs/EmptyBrick.prefab to change color or sprite of empty tile.

Prefabs/Brick.prefab を変更して、タイルのフォント、色、またはスプライトを変更します。
Prefabs/EmptyBrick.prefab を変更して、空のタイルの色またはスプライトを変更します。

/Users/shinmr/Puzzle/Assets/
├── Adaptive Performance
│   ├── Settings
├── Editor
├── PuzzleGame
│   ├── Animations
│   │   ├── 1010
│   │   ├── Field
│   ├── Editor
│   ├── Fonts
│   ├── Prefabs
│   │   ├── Bricks
│   │   │   ├── 1010Brick.prefab    <-- これ
│   │   │   ├── 1010Brick.prefab.meta
│   │   │   ├── Empty1010Brick.prefab    <-- これ
│   │   │   └── Empty1010Brick.prefab.meta

Modify Game Controller fields in inspector to change gameplay:
Bricks Count (X, Y) defines how many tiles contains field.
Bricks To Merge defines how many tiles with similar number will be merged.
Next Bricks Count defines how many tiles will be spawned each turn.

ゲームプレイを変更するには、インスペクタでゲーム コントローラ フィールドを変更します。
Bricks Count (X, Y) は、フィールドを含むタイルの数を定義します。
Bricks To Merge は、同じ数のタイルをいくつマージするかを定義します。
Next Bricks Count は、毎ターン生成されるタイルの数を定義します。

You can replace audio clips on Click, Landing and Merging Game Objects with your own.

Click、Landing、Merging ゲーム オブジェクトのオーディオ クリップを独自のものに置き換えることができます。

Modify color Themes in inspector to change game view. Each puzzle has its own collection of themes.
Modify Resources/Themes/Themes Collection. You can customize existing themes or create and add your own.

ゲーム ビューを変更するには、インスペクターでカラー テーマを変更します。 各パズルには独自のテーマのコレクションがあります。
リソース/テーマ/テーマ コレクションを変更します。 既存のテーマをカスタマイズしたり、独自のテーマを作成して追加したりできます。

Modify Price for each theme. It can be unlocked by Coins or Ads. If you want to make it free, set Price Value by 0.
Label Colors list is used for text of numbers on bricks.
Sprites Colors list is used to set the color of a tile by a numerical value.
Buttons Colors is used to make UI elements match the theme.
Empty Color is a color of the empty tiles on the grid.
Field Color is a color of the game field.
Text color is used for UI text.
Modify Background Canvas/Background on Game scene to change color or sprite of background. You can remove SetThemeBackground.cs from Background gameobject if you don't want it to change for each theme. Otherwise, you can set BackgroundColor or BackgroundSprite in themes.

各テーマの価格を変更します。 コインまたは広告によってロックを解除できます。 無料にしたい場合は、Price Value を 0 に設定します。
ラベルの色のリストは、レンガの数字のテキストに使用されます。
Sprites Colors リストは、タイルの色を数値で設定するために使用されます。
ボタンの色は、UI 要素をテーマに一致させるために使用されます。
Empty Color は、グリッド上の空のタイルの色です。
フィールドカラーはゲームフィールドの色です。
テキストの色は UI テキストに使用されます。
ゲームシーンの背景キャンバス/背景を変更して、背景の色やスプライトを変更します。 テーマごとに変更したくない場合は、Background ゲームオブジェクトから SetThemeBackground.cs を削除できます。 それ以外の場合は、テーマで BackgroundColor または BackgroundSprite を設定できます。

Resources/Themes/Shared/ There were presented examples of customization for different themes.
Resources/Themes/1010/ Here`s an example of how to set up your puzzle by using custom sprites. Use Sprites Collection, edit it or create your own collection by clicking in Project view Create/ Sprites Collection.

Resources/Themes/Shared/ テーマごとのカスタマイズ例が紹介されていました。
Resources/Themes/1010/ カスタム スプライトを使用してパズルをセットアップする方法の例を次に示します。 スプライト コレクションを使用して編集するか、プロジェクト ビューの [作成]/[スプライト コレクション] をクリックして独自のコレクションを作成します。

Technical Implementation and Workflow

We tried to make this game template in such a way where even a non-technical folk also can modify and publish this game. But for the techie who wants to make a detailed modification or wants to add more features, below is few notes that may help you understand structure and workflow of this asset.

このゲーム テンプレートは、技術者でなくてもこのゲームを変更して公開できるように作成しようとしました。 ただし、詳細な変更を行いたい、または機能を追加したい技術者のために、このアセットの構造とワークフローを理解するのに役立ついくつかのメモを以下に示します。

This game is entirely made with uGUI including gameplay.

Game Controller: This controller is responsible for all gameplay. Any gameplay behavior and events can be modified in this controller.
NumberedBrick: This script controls appearance, animation and movement of tile.
UserProgress: This controller handles Current Score, Top Score and Game State. Mostly you won't need to touch this controller unless you want to add any more user data and save it.SfxButton: This script sets Audio Mixer Snapshots and saves them.

このゲームは、ゲームプレイも含めてすべてuGUIで作られています。
補足:uGUIとは「UnityのUI機能」のこと

Game Controller:
このコントローラーは、すべてのゲームプレイを担当します。 ゲームプレイの動作とイベントは、このコントローラーで変更できます。

NumberedBrick:
このスクリプトは、タイルの外観、アニメーション、および移動を制御します。

UserProgress:
このコントローラーは、現在のスコア、トップスコア、およびゲームの状態を扱います。 ユーザーデータを追加して保存する場合を除き、ほとんどの場合、このコントローラーに触れる必要はありません。

SfxButton:
このスクリプトは、オーディオ ミキサーのスナップショットを設定して保存します。

・ゲームオブジェクトのラインナップ

・UIとか、ブロックの画像を変えたい


・ゲームスクリプト

下記の44のスクリプトが入っている。

  1. BaseGameController.cs

  2. Brick.cs

  3. CoinsCounter.cs

  4. FigureController.cs

  5. Figures1010.cs

  6. GameController1010.cs

  7. GameOverAds.cs

  8. GamePreset.cs

  9. GameSelector.cs

  10. GameState.cs

  11. GameState1010.cs

  12. InputController.cs

  13. Label.cs

  14. MonetizeButton.cs

  15. MoveHelper.cs

  16. NumberedBrick.cs

  17. OpenUrlButton.cs

  18. Panel.cs

  19. Pause.cs

  20. PlaySfx.cs

  21. PointerInputController.cs

  22. Price.cs

  23. PriceLabel.cs

  24. PriceType.cs

  25. QuitButton.cs

  26. RestartButton.cs

  27. ScoreCounter.cs

  28. SetCameraColor.cs

  29. SetThemeBackground.cs

  30. SetThemeColor.cs

  31. SfxButton.cs

  32. ShowAds.cs

  33. SpritesCollection.cs

  34. StandaloneInputController.cs

  35. TapInputController.cs

  36. ThemeController.cs

  37. ThemePanel.cs

  38. ThemePreset.cs

  39. ThemePreview.cs

  40. ThemesCollection.cs

  41. TopScoreCounter.cs

  42. UnityAdsController.cs

  43. UserProgress.cs

  44. WaveAlgorithm.cs

コントローラー

BaseGameController.cs

FigureController.cs

GameController1010.cs

TapInputController.cs

ThemeController.cs

InputController.cs

StandaloneInputController.cs

PointerInputController.cs

UnityAdsController.cs

宣言するクラスが二つ。

public static class PlacementId
public const string Video = "video";
public const string RewardedVideo = "rewardedVideo";

public const string Banner = "banner";
public class UnityAdsController : MonoBehaviour, IUnityAdsListener
public string iOSGameId;
public string androidGameId;
public string otherGameId;
public void OnUnityAdsReady(string placementId)
public void OnUnityAdsDidError(string message)
public void OnUnityAdsDidStart(string placementId)
public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)

ゲームの動作環境に応じたゲームIDを広告に設定する。
広告の位置を設定する。
広告にリスナーを追加する。
広告を初期化する。

ゲームオブジェクト

Brick.cs

CoinsCounter.cs

Panel.cs

Label.cs

NumberedBrick.cs

ScoreCounter.cs

TopScoreCounter.cs

ThemePanel.cs

UI

GameSelector.cs

QuitButton.cs

RestartButton.cs

MonetizeButton.cs

OpenUrlButton.cs

SfxButton.cs

広告

GameOverAds.cs


未分類

Figures1010.cs

GamePreset.cs

GameState.cs

GameState1010.cs


MoveHelper.cs


Pause.cs

PlaySfx.cs


Price.cs

PriceLabel.cs

PriceType.cs


SetCameraColor.cs

SetThemeBackground.cs

SetThemeColor.cs




ShowAds.cs

SpritesCollection.cs




ThemePreset.cs

ThemePreview.cs

ThemesCollection.cs



UserProgress.cs

WaveAlgorithm.cs

クラス関係



アセットについてファイルも出力するとこんな感じ。

$ tree /Users/shinmr/Puzzle/Assets/
/Users/shinmr/Puzzle/Assets/
├── Adaptive Performance
│   ├── AdaptivePerformanceGeneralSettings.asset
│   ├── AdaptivePerformanceGeneralSettings.asset.meta
│   ├── Settings
│   │   ├── Simulator Provider Settings.asset
│   │   └── Simulator Provider Settings.asset.meta
│   └── Settings.meta
├── Adaptive Performance.meta
├── Editor
│   ├── com.unity.mobile.notifications
│   │   ├── NotificationSettings.asset
│   │   └── NotificationSettings.asset.meta
│   └── com.unity.mobile.notifications.meta
├── Editor.meta
├── PuzzleGame
│   ├── Animations
│   │   ├── 1010
│   │   │   ├── Brick.overrideController
│   │   │   ├── Brick.overrideController.meta
│   │   │   ├── Merging.anim
│   │   │   └── Merging.anim.meta
│   │   ├── 1010.meta
│   │   ├── Button.controller
│   │   ├── Button.controller.meta
│   │   ├── Coin.anim
│   │   ├── Coin.anim.meta
│   │   ├── CoinVFX.controller
│   │   ├── CoinVFX.controller.meta
│   │   ├── Field
│   │   │   ├── Big.anim
│   │   │   ├── Big.anim.meta
│   │   │   ├── Middle.anim
│   │   │   ├── Middle.anim.meta
│   │   │   ├── MinimizeMaximize.controller
│   │   │   ├── MinimizeMaximize.controller.meta
│   │   │   ├── Small.anim
│   │   │   └── Small.anim.meta
│   │   ├── Field.meta
│   │   ├── Loading.anim
│   │   ├── Loading.anim.meta
│   │   ├── Loading.controller
│   │   ├── Loading.controller.meta
│   │   ├── PanelContent.controller
│   │   ├── PanelContent.controller.meta
│   │   ├── ShowThemeWindow.anim
│   │   └── ShowThemeWindow.anim.meta
│   ├── Animations.meta
│   ├── Editor
│   │   ├── ThemePresetLabelPropertyDrawer.cs
│   │   └── ThemePresetLabelPropertyDrawer.cs.meta
│   ├── Editor.meta
│   ├── Fonts
│   │   ├── FredokaOne-Regular.ttf
│   │   └── FredokaOne-Regular.ttf.meta
│   ├── Fonts.meta
│   ├── Prefabs
│   │   ├── Bricks
│   │   │   ├── 1010Brick.prefab
│   │   │   ├── 1010Brick.prefab.meta
│   │   │   ├── Empty1010Brick.prefab
│   │   │   └── Empty1010Brick.prefab.meta
│   │   ├── Bricks.meta
│   │   ├── ButtonIcon.prefab
│   │   ├── ButtonIcon.prefab.meta
│   │   ├── ButtonText.prefab
│   │   ├── ButtonText.prefab.meta
│   │   ├── BuyCoinsButton.prefab
│   │   ├── BuyCoinsButton.prefab.meta
│   │   ├── GameControllers
│   │   │   ├── 1010.prefab
│   │   │   └── 1010.prefab.meta
│   │   ├── GameControllers.meta
│   │   ├── Loading.prefab
│   │   ├── Loading.prefab.meta
│   │   ├── MonetizeButton.prefab
│   │   ├── MonetizeButton.prefab.meta
│   │   ├── ThemePreview.prefab
│   │   ├── ThemePreview.prefab.meta
│   │   ├── UnityAdsInitializer.prefab
│   │   └── UnityAdsInitializer.prefab.meta
│   ├── Prefabs.meta
│   ├── README.rtf
│   ├── README.rtf.meta
│   ├── Resources
│   │   ├── CoinVFX.prefab
│   │   ├── CoinVFX.prefab.meta
│   │   ├── DestroyVFX.prefab
│   │   ├── DestroyVFX.prefab.meta
│   │   ├── Games
│   │   │   ├── 1010.asset
│   │   │   └── 1010.asset.meta
│   │   ├── Games.meta
│   │   ├── LineVFX.prefab
│   │   ├── LineVFX.prefab.meta
│   │   ├── SpritesCollections
│   │   │   ├── FruitsOutlineSpritesCollection.asset
│   │   │   ├── FruitsOutlineSpritesCollection.asset.meta
│   │   │   ├── FruitsSpritesCollection.asset
│   │   │   └── FruitsSpritesCollection.asset.meta
│   │   ├── SpritesCollections.meta
│   │   ├── Themes
│   │   │   ├── 1010
│   │   │   │   ├── 1010Fruits.asset
│   │   │   │   ├── 1010Fruits.asset.meta
│   │   │   │   ├── MergedFruits.asset
│   │   │   │   └── MergedFruits.asset.meta
│   │   │   ├── 1010.meta
│   │   │   ├── Shared
│   │   │   │   ├── 1010.asset
│   │   │   │   ├── 1010.asset.meta
│   │   │   │   ├── 2048.asset
│   │   │   │   ├── 2048.asset.meta
│   │   │   │   ├── Get11.asset
│   │   │   │   ├── Get11.asset.meta
│   │   │   │   ├── Merged.asset
│   │   │   │   ├── Merged.asset.meta
│   │   │   │   ├── Nature.asset
│   │   │   │   ├── Nature.asset.meta
│   │   │   │   ├── Pony.asset
│   │   │   │   ├── Pony.asset.meta
│   │   │   │   ├── USA.asset
│   │   │   │   └── USA.asset.meta
│   │   │   ├── Shared.meta
│   │   │   ├── ThemesCollection1010.asset
│   │   │   └── ThemesCollection1010.asset.meta
│   │   └── Themes.meta
│   ├── Resources.meta
│   ├── Scenes
│   │   ├── Game.unity
│   │   └── Game.unity.meta
│   ├── Scenes.meta
│   ├── Scripts
│   │   ├── BaseGameController.cs
│   │   ├── BaseGameController.cs.meta
│   │   ├── Brick.cs
│   │   ├── Brick.cs.meta
│   │   ├── CoinsCounter.cs
│   │   ├── CoinsCounter.cs.meta
│   │   ├── FigureController.cs
│   │   ├── FigureController.cs.meta
│   │   ├── Figures1010.cs
│   │   ├── Figures1010.cs.meta
│   │   ├── GameController1010.cs
│   │   ├── GameController1010.cs.meta
│   │   ├── GameOverAds.cs
│   │   ├── GameOverAds.cs.meta
│   │   ├── GamePreset.cs
│   │   ├── GamePreset.cs.meta
│   │   ├── GameSelector.cs
│   │   ├── GameSelector.cs.meta
│   │   ├── GameState.cs
│   │   ├── GameState.cs.meta
│   │   ├── GameState1010.cs
│   │   ├── GameState1010.cs.meta
│   │   ├── InputController.cs
│   │   ├── InputController.cs.meta
│   │   ├── Label.cs
│   │   ├── Label.cs.meta
│   │   ├── MonetizeButton.cs
│   │   ├── MonetizeButton.cs.meta
│   │   ├── MoveHelper.cs
│   │   ├── MoveHelper.cs.meta
│   │   ├── NumberedBrick.cs
│   │   ├── NumberedBrick.cs.meta
│   │   ├── OpenUrlButton.cs
│   │   ├── OpenUrlButton.cs.meta
│   │   ├── Panel.cs
│   │   ├── Panel.cs.meta
│   │   ├── Pause.cs
│   │   ├── Pause.cs.meta
│   │   ├── PlaySfx.cs
│   │   ├── PlaySfx.cs.meta
│   │   ├── PointerInputController.cs
│   │   ├── PointerInputController.cs.meta
│   │   ├── Price.cs
│   │   ├── Price.cs.meta
│   │   ├── PriceLabel.cs
│   │   ├── PriceLabel.cs.meta
│   │   ├── PriceType.cs
│   │   ├── PriceType.cs.meta
│   │   ├── QuitButton.cs
│   │   ├── QuitButton.cs.meta
│   │   ├── RestartButton.cs
│   │   ├── RestartButton.cs.meta
│   │   ├── ScoreCounter.cs
│   │   ├── ScoreCounter.cs.meta
│   │   ├── SetCameraColor.cs
│   │   ├── SetCameraColor.cs.meta
│   │   ├── SetThemeBackground.cs
│   │   ├── SetThemeBackground.cs.meta
│   │   ├── SetThemeColor.cs
│   │   ├── SetThemeColor.cs.meta
│   │   ├── SfxButton.cs
│   │   ├── SfxButton.cs.meta
│   │   ├── ShowAds.cs
│   │   ├── ShowAds.cs.meta
│   │   ├── SpritesCollection.cs
│   │   ├── SpritesCollection.cs.meta
│   │   ├── StandaloneInputController.cs
│   │   ├── StandaloneInputController.cs.meta
│   │   ├── TapInputController.cs
│   │   ├── TapInputController.cs.meta
│   │   ├── ThemeController.cs
│   │   ├── ThemeController.cs.meta
│   │   ├── ThemePanel.cs
│   │   ├── ThemePanel.cs.meta
│   │   ├── ThemePreset.cs
│   │   ├── ThemePreset.cs.meta
│   │   ├── ThemePreview.cs
│   │   ├── ThemePreview.cs.meta
│   │   ├── ThemesCollection.cs
│   │   ├── ThemesCollection.cs.meta
│   │   ├── TopScoreCounter.cs
│   │   ├── TopScoreCounter.cs.meta
│   │   ├── UnityAdsController.cs
│   │   ├── UnityAdsController.cs.meta
│   │   ├── UserProgress.cs
│   │   ├── UserProgress.cs.meta
│   │   ├── WaveAlgorithm.cs
│   │   └── WaveAlgorithm.cs.meta
│   ├── Scripts.meta
│   ├── Sounds
│   │   ├── AudioMixer.mixer
│   │   ├── AudioMixer.mixer.meta
│   │   ├── Coin.wav
│   │   ├── Coin.wav.meta
│   │   ├── Landing.wav
│   │   ├── Landing.wav.meta
│   │   ├── Merging.wav
│   │   └── Merging.wav.meta
│   ├── Sounds.meta
│   ├── Sprites
│   │   ├── 00_main.PNG
│   │   ├── 00_main.PNG.meta
│   │   ├── 00_tab.PNG
│   │   ├── 00_tab.PNG.meta
│   │   ├── 360.png
│   │   ├── 360.png.meta
│   │   ├── Circle.png
│   │   ├── Circle.png.meta
│   │   ├── Fruits
│   │   │   ├── apple-1.png
│   │   │   ├── apple-1.png.meta
│   │   │   ├── apple-2.png
│   │   │   ├── apple-2.png.meta
│   │   │   ├── grapes-2.png
│   │   │   ├── grapes-2.png.meta
│   │   │   ├── kiwi-1.png
│   │   │   ├── kiwi-1.png.meta
│   │   │   ├── kiwi-2.png
│   │   │   ├── kiwi-2.png.meta
│   │   │   ├── lemon-1.png
│   │   │   ├── lemon-1.png.meta
│   │   │   ├── lemon-2.png
│   │   │   ├── lemon-2.png.meta
│   │   │   ├── pineapple-1.png
│   │   │   ├── pineapple-1.png.meta
│   │   │   ├── strawberry-1.png
│   │   │   ├── strawberry-1.png.meta
│   │   │   ├── strawberry-2.png
│   │   │   ├── strawberry-2.png.meta
│   │   │   ├── tangerine-1.png
│   │   │   ├── tangerine-1.png.meta
│   │   │   ├── tangerine-2.png
│   │   │   └── tangerine-2.png.meta
│   │   ├── Fruits.meta
│   │   ├── Hexagon.png
│   │   ├── Hexagon.png.meta
│   │   ├── Icon.png
│   │   ├── Icon.png.meta
│   │   ├── Quad.png
│   │   ├── Quad.png.meta
│   │   ├── merged.png
│   │   ├── merged.png.meta
│   │   ├── round_arrow_forward_white_48dp.png
│   │   ├── round_arrow_forward_white_48dp.png.meta
│   │   ├── round_arrow_right_white_48dp.png
│   │   ├── round_arrow_right_white_48dp.png.meta
│   │   ├── round_assignment_turned_in_white_48dp.png
│   │   ├── round_assignment_turned_in_white_48dp.png.meta
│   │   ├── round_autorenew_white_48dp.png
│   │   ├── round_autorenew_white_48dp.png.meta
│   │   ├── round_close_white_48dp.png
│   │   ├── round_close_white_48dp.png.meta
│   │   ├── round_keyboard_arrow_down_white_48dp.png
│   │   ├── round_keyboard_arrow_down_white_48dp.png.meta
│   │   ├── round_lock_open_white_48dp.png
│   │   ├── round_lock_open_white_48dp.png.meta
│   │   ├── round_lock_white_48dp.png
│   │   ├── round_lock_white_48dp.png.meta
│   │   ├── round_palette_white_48dp.png
│   │   ├── round_palette_white_48dp.png.meta
│   │   ├── round_play_arrow_white_48dp.png
│   │   ├── round_play_arrow_white_48dp.png.meta
│   │   ├── round_refresh_white_48dp.png
│   │   ├── round_refresh_white_48dp.png.meta
│   │   ├── round_settings_white_48dp.png
│   │   ├── round_settings_white_48dp.png.meta
│   │   ├── round_share_white_48dp.png
│   │   ├── round_share_white_48dp.png.meta
│   │   ├── round_star_white_48dp.png
│   │   ├── round_star_white_48dp.png.meta
│   │   ├── round_videocam_off_white_48dp.png
│   │   ├── round_videocam_off_white_48dp.png.meta
│   │   ├── round_videocam_white_48dp.png
│   │   ├── round_videocam_white_48dp.png.meta
│   │   ├── round_volume_off_white_48dp.png
│   │   ├── round_volume_off_white_48dp.png.meta
│   │   ├── round_volume_up_white_48dp.png
│   │   ├── round_volume_up_white_48dp.png.meta
│   │   ├── videocam.png
│   │   └── videocam.png.meta
│   └── Sprites.meta
├── PuzzleGame.meta
├── Readme.asset
├── Readme.asset.meta
├── Resources
│   ├── BillingMode.json
│   └── BillingMode.json.meta
├── Resources.meta
├── Scenes
│   ├── SampleScene.unity
│   └── SampleScene.unity.meta
├── Scenes.meta
├── TutorialInfo
│   ├── Icons
│   │   ├── Help_Icon.png
│   │   ├── Help_Icon.png.meta
│   │   ├── Mobile 2D.png
│   │   └── Mobile 2D.png.meta
│   ├── Icons.meta
│   ├── Layout.wlt
│   ├── Layout.wlt.meta
│   ├── Scripts
│   │   ├── Editor
│   │   │   ├── ReadmeEditor.cs
│   │   │   └── ReadmeEditor.cs.meta
│   │   ├── Editor.meta
│   │   ├── Readme.cs
│   │   └── Readme.cs.meta
│   └── Scripts.meta
└── TutorialInfo.meta

時間がなくなったので、今日はここまで、すいません。
もし、つづきに興味が湧いたら、あなたのワンコインお願いします。
そのワンコインで、がんばります。

何について、詳しいか
何について、きわめたいか

何について興味を持つか
面白そうっと思えるか

最後まで読んでいただき、感謝です(ペコリ)

#unity
#アセット
#ゲーム
#shinmr
#SHINBOK

ここから先は

0字

¥ 500

この記事が気に入ったらサポートをしてみませんか?