Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AR Survival Shooter

Mobile Augmented Reality survival shooter built with Unity 6 and AR Foundation. Detect horizontal planes, place an arena in real space, survive timed enemy waves, and track local high scores.

Student: Mwiza Cannelle
Unity Version: 6000.5.0f1
Target Platform: Android (ARCore)
Main Scene: Assets/AR_Survival.unity


Assignment Overview

This project fulfills the AR Survival Shooter assignment requirements:

  • AR plane detection and anchored gameplay
  • Custom plane tracker with student name
  • Two enemy types (Melee and Shooter)
  • Object pooling for projectiles
  • Complete game loop (Start → Play → End)
  • Full UI system with difficulty selection
  • Local leaderboard (latest 5 sessions)
  • Integrated sound design
  • OOP architecture with design patterns (Singleton, Factory, State, Observer, Object Pool)

Features

Feature Description
Custom AR Plane Tracker Teal textured planes with Mwiza Cannelle label; replaces default Unity visualizer
Melee Enemy Close-range pursuit, 2 hits to kill, score +5
Shooter Enemy Ranged attacks with pooled bullets, 5 hits to kill, score +10
Object Pooling BulletPool and EnemyBulletPool — no runtime Instantiate/Destroy for bullets
Difficulty Modes Easy (120s) and Hard (90s) with different spawn rates and enemy speed
UI Start menu, in-game HUD, end screen, leaderboard panel
Audio Shoot, death, spawn, melee attack, and shooter attack sounds
Leaderboard Local persistence via PlayerPrefs (top 5 sessions)

Gameplay Flow

  1. Start Menu — choose Easy or Hard difficulty, view leaderboard
  2. Scan & Place — move device to detect planes (custom tracker visible), tap to place arena
  3. Survive — shoot enemies, avoid damage, beat the timer
  4. End Screen — view score, kills, time survived; restart or return to main menu

Architecture (Summary)

  • Managers: GameManager, UIManager, AudioManager, LeaderboardManager, DifficultyManager, ARPlacementManager, EnemyFactory
  • Enemies: Enemy base class → MeleeEnemy, ShooterEnemy
  • Pooling: BulletPool, EnemyBulletPool
  • AR: CustomPlaneVisualizer on AR Default Plane prefab

Full technical details: Docs/TechnicalDocumentation.md


Build Instructions (Android APK)

Prerequisites

  • Unity 6000.5.0f1 with Android Build Support module installed (Unity Hub → Installs → Add modules)
  • Physical Android device with ARCore support

Steps

  1. Open the project in Unity
  2. Open Assets/AR_Survival.unity
  3. File → Build Profiles → Android → Switch Platform
  4. Player Settings → XR Plug-in Management → ARCore enabled
  5. File → Build Settings → Build (or Build → Build Android APK)
  6. Install the APK on your Android device

Note: APK files are zip-based internally — that is normal. Upload the .apk file directly for submission.


Submission Deliverables

Deliverable Location
GitHub Repository This repo
Android APK Built .apk (Android / ARCore)
Technical Documentation Docs/TechnicalDocumentation.pdf
Demo Video Device recording from Unity splash through full gameplay

Design Patterns Used

Pattern Usage
Singleton GameManager, AudioManager, UIManager, pools, factories
Object Pool Player and enemy projectiles
Factory EnemyFactory.CreateRandomEnemy()
State GameManager.GameState (Start, Playing, End)
Observer OnScoreChanged, OnStateChanged events

Assets & Credits

  • Enemy character models and animations: Mixamo (Assets/Characters and Animations/)
  • Sound effects: free clips in Assets/Sounds/
  • AR Foundation, ARCore, XR Interaction Toolkit (Unity packages)

License

Academic project submission — Mwiza Cannelle, 2026.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages