Virtual Pet Game Template
  • VIRTUAL PET GAME TEMPLATE
  • Getting Started
    • 🎯 Project Setup Guide
    • 🧩 Home Scene Overview
    • 🗺️ UI Main Menu
    • 🗺️ LoadingManager
    • 🗺️ GameInstance
    • 🗺️ ToolsManager
    • 🗺️ AudioManager
    • 🗺️ LanguageManager
    • 🗺️ MonetizationManager
    • 🗺️ PlayerSave
  • Modifying the project
    • 🐾 How to Add a New Pet
    • 📜How Add a New Pet Rules
    • 💰 How to Add a New Currency
    • 🍎 How to Add a New Food Item
    • 🧢 Adding a New Accessory
    • 🎮 How to Add a New Minigame
  • Modifying Minigames
    • 🌤️ Minigame "Jump Sky"
    • 🍔 Minigame "Food Flicker"
    • 🐦 Minigame “Flappy”
    • 💎 Minigame “Gem Hunter”
Powered by GitBook
On this page
  • 📖 Official Documentation
  • 🧭 Custom Flow in This Project
  • 🗺️ How to Add a New Gem Hunter Stage
  • 🧠 Summary of Core Objects in a Scene
  • 🎁 Rewards and Currency
  • 🧪 Testing and Iteration
  • 💡 Customization Tips
  1. Modifying Minigames

💎 Minigame “Gem Hunter”

Editing the “Gem Hunter” Minigame

Previous🐦 Minigame “Flappy”

Last updated 28 days ago

Legal Notice: The Gem Hunter minigame is a customized integration of the official Unity sample project available on the Unity Asset Store. It is used here under the terms of the Unity Companion License, available at: https://unity3d.com/legal/licenses/unity_companion_license

📖 Official Documentation

To fully understand and modify the minigame, it is strongly recommended that you read the official documentation included in the project at:

PetCare/Res/GemHunterMatch/Documentation

This documentation explains in depth the project structure, gameplay loop, visual effects, level building process, and customization options.


🧭 Custom Flow in This Project

In the PetCareGame, the minigame is managed through the custom script MinigameGemHunter.cs, which is responsible for:

  • Instantiating the player's pet character.

  • Detecting when a stage is completed or failed.

  • Controlling the transition between levels.

  • Handling custom reward distribution via the EndGamePopup.


🗺️ How to Add a New Gem Hunter Stage

To add a new level that works within this custom wrapper:

1. Create Your Level Scene

Follow the official Unity instructions to design your board:

  • Use the Tile Palette with Logic, Tilemap, and Tilemap_Frame layers.

  • Configure matchable tiles, blockers, spawn arrows, and background.

  • Add LevelData GameObject in your scene to define goals, moves, music, and camera borders.

2. Configure Stage Info in ScriptableObject

Add a new StageDefinitionGemHunter entry in MinigameGemHunter :

public StagesGemHunter[] gameStages;

Each stage entry is a StagesGemHunter struct containing an index and stageDefinition.

3. Add the Scene to Build Settings

Ensure the new scene is included in the Build Settings (File > Build Settings) so it can be loaded at runtime.

4. Instantiate the MinigameGemHunter Object

The first scene should include:

  • The MinigameGemHunter GameObject (it will persist via DontDestroyOnLoad)

  • The characterContainer assigned properly

  • A reference to the EndGamePopup prefab and UI container

  • Properly configured StageDefinitionGemHunter for this scene

A typical scene name would follow the pattern:

Minigame_Gem_Scene_1
Minigame_Gem_Scene_2

And it will be matched in code using the method:

private int GetStageIndexFromScene(string sceneName);

🧠 Summary of Core Objects in a Scene

Object
Description

Grid / Logic

Level layout and tile logic (gem placement, spawn points).

Tilemap & Frame

Visual decoration.

Lights & VFX

URP 2D lights for dynamic lighting on puzzle pieces.

LevelData

Holds goals, moves, background track, and camera settings.


🎁 Rewards and Currency

Each level defines rewards for win and loss. After a match ends, the wrapper script calls:

ShowEndGamePopup(score, currencyId, currencyAmount, isWin);

The reward type (coins, stars, etc.) is configurable per level. The currency string ("GO" or other) is handled by PlayerSave.AddCoin().


🧪 Testing and Iteration

You can test a level directly in the Unity Editor. The GameManager will be instantiated automatically at runtime if missing. To integrate a new level into gameplay flow:

  • Add it to the gameStages list.

  • Create a MinigameGemHunter prefab or GameObject.

  • Link UI elements and character container.

  • Add the scene to build list.


💡 Customization Tips

  • To reskin the minigame, simply replace sprites and tile assets used in your level scene.

  • You may disable decorative GameObjects like BG, VFX_Bubbles for a cleaner look.

Gem Hunter Match