A downloadable game

Fly as a witch and shoot your way through the spooky night with this side-scrolling shooter template! Avoid pointy towers and graveyard obstacles, and watch out for those creepy creatures- but you can always try and aim your fireball to eliminate them.

A set of pre-made Halloween graphic assets are provided in this package, but you can adjust or replace it according to your needs.

Features:
- side scroll

- automatic projectile firing
- life system
- spawner destructible obstacle
- controller destructible obstacle
- controller character
- character movement

Supported platforms:
Windows
Mac OS X
Linux
iOS
Android
Web GL

Supported OS:
Windows
Mac OS X
Linux
iOS
Android

File Format : Unity Package

How to use :

You can check how it works on Demo scene, but generally you need to do this simple step

  • Setup your Character
    • Basically you need to setup your character and add these 3 component
      • Input Handler
      • Character Movement Controller
      • Character Shooting Controller (if needed)
    • Also setup your projectile for shooting (if needed) as prefab
  • Setup your Scene
    • Place collider you need, for example I want to use camera that hold character in middle with killing collider on top and bottom like this
    • You should also setup where you want to spawn your obstacle and which collider act as despawner
  • Setup your Obstacle
    • Setup 1 game object as spawner that will act as obstacle generator
    • Setup your obstacle as prefab

Structure :
Mainly this template has two main module

Character :
This module will handle all character behavior

Movement controller :

  • This component used to control the movement of the character
  • This component will need Rigidbody2D and any Collider2D to work
  • You can control the both jump and fall behaviour with this component
  • You can use unity gravity and rigidbody behaviour or override it and using the controller rigidbody itself

Input :

  • This component used to enable tap input for use on Movement Controller.
    • By adding this component you will automatically add movement controller too
    • Or you can create your own input handler by using this as example (if you need to use Unity new Input System for example)
  • You can enable control for both touch and mouse click.
  • You can enable hold or non hold control to create a different gameplay that suits your needs

Shooting Controller :

  • This module used to control shooting made by character
  • You can adjust how the shooting would work or even add your own input later on by calling the public function Activate or Deactivate
  • You need to setup few things first like
    • Which is the projectile
    • Where the projectile would spawn on game hierarchy (which one is parent)
    • What position the projectile would spawn (where is the spawn point)

Projectile Controller :

  • This module used to control projectile that spawned by shooting controller
  • You can edit lifetime of this projectile only since everything already handled by shooting controller
    • by illustration this one is bullet and shooting controller is the weapon

Obstacle :

This module will handle all obstacle handling on the game, here are two type of obstacle which uses same base component

Generator :

  • This component will handle all generation of the component they need to setup (e.g. destructible and non-destructible)
  • You can also setup the speed of all component spawned by this generator
  • You can change the randomized interval spawn time
  • You can also set up this many obstacle that will randomly be selected

Remover :

  • This component will destroy any obstacle that touch its collider so the game won’t get heavier due to too many object that the game doesn’t need anymore
  • This is expected to put outside camera behind the player, just place it where you see fit

Controller :

  • The component will handle how the obstacle will behave
  • Basically this only handle movement, spawning, and remove (any colliding hid handled by other collider)

Types :

  • Static
    • This is basically the base obstacle without any unique handling
  • Destructible
    • This is Obstacle that implement interface IDestructable to make they be able to be destroyed when hit by a projectile