WestHillApps

Available on Unity Asset Store!!


About Uni Bullet Hell

"Uni Bullet Hell" is 2D bullet hell's shot pattern system for Unity.
You can create various bullet patterns simply by adding script component of shot pattern.

Check this webplayer sample scene.

Quick Tutorial

1. Add Shot Controller component to GameObject you want to shot.
[Add Component] > [UniBulletHell] > [Controller] > [Shot Controller]

01

2. Select your favorite shot pattern from Project view ([UniBulletHell] > [Example] > [Prefab] > [ShotPattern] directory)
and add it in Hierarchy view as child elements of the GameObject.


3. Select the GameObject and write 1 into the size box of Shot List in Shot Ctrl Components parameter.
Set the shot pattern obj into ShotObj and set some sec into AfterDelay.

02

4. Push the play button.

03

Example Scene

* UBH_ShotShowcase

This scene displays sample of 56 shot patterns.
I recommend you to see it first.

* UBH_ShotShowcase3D

This scene displays sample of 56 shot patterns in 3D world.

* UBH_GameExample

This scene is a simple 2D shooter game.
When you want to use Uni Bullet Hell to your game, please see this scene.

* UBH_Tutorial

This scene is used to Quick Tutorial in this page.

Tips

* Start shooting from source code

Remove a check of StartOnAwake in Shot Controller (UbhShotCtrl.cs) inspecter settings.
Call "StartShotRoutine()" method of UbhShotCtrl whenever you like.

* Pause, Resume

To pause movement of Uni Bullet Hell, call "UbhTimer.instance.Pause()" method.
To resume, call "UbhTimer.instance.Resume()" method.

* Change DeltaTime type

Uni Bullet Hell supports 3 DeltaTimes. (DeltaTime / UnscaledDeltaTime / FixedDeltaTime)
To change the DeltaTime type, set the "UbhTimer.instance.deltaTimeType" property or set it from UbhTimer's inspector.

* Using on 3D world

Set the Axis Move in Shot Controller (UbhShotCtrl.cs) inspecter settings.

* Pooling Bullet GameObject

The bullet GameObject are managed in the pooling system for reuse.
To remove the bullet GameObject (Return to pool), call the "UbhObjectPool.instance.ReleaseBullet(UbhBullet bullet)" method.
To remove all bullets GameObject(Return to pool), call the "UbhObjectPool.instance.ReleaseAllBullet()" method.
To remove all bullet pools (Delete GameObject of Pool), call the "UbhObjectPool.instance.RemoveAllPool()" method.

* Initialize Pooling

Add Object Pool component to GameObject in your first scene.
[Add Component] > [UniBulletHell] > [Manager] > [Object Pool]
Then set a bullet prefab and num to create in "Initialize Pool List" param.

* Integrate pooling system into "Core GameKit" or "Pool Boss" (Dark Tonic Inc.)

Core GameKit Pool Boss
Enable a definition "USING_CORE_GAME_KIT" in "UbhObjectPool.cs".

* Performance optimization

Please uncheck the unnecessary layer collision in order to increase gaming performance.
Setting for 2D [Edit] > [Project Settings] > [Physics 2D] > [Layer Collision Matrix]
Setting for 3D [Edit] > [Project Settings] > [Physics] > [Layer Collision Matrix]

Credit

* Used in this asset

Unity Technologies Japan's 2D Shooting Game Tutorial Assets

Class Reference of Shot Controller (UbhShotCtrl.cs)

* Inspecter settings

Axis Move Axis on bullet move. (X-Y or X-Z)
Inherit Angle Flag that inherits angle of UbhShotCtrl.
Start On Awake Flag that starts a shot routine at same time as instantiate.
Start On Awake Delay Set a delay time at using Start On Awake. (sec)
Loop Flag that repeats a shot routine.
At Random Flag that makes a shot routine randomly.
Shot List List of shot information. this size is necessary at least 1 or more.
Shot List elements - Shot Obj Set a shot pattern component.
Shot List elements - After Delay Set a delay time to starting next shot pattern. (sec)
Shot Fired Callback Events Set a callback method fired shot.
Shot Finished Callback Events Set a callback method after shot.

* Public Methods

void StartShotRoutine () Start the shot routine.
void StopShotRoutine () Stop the shot routine.

Inspecter Settings value of each shot pattern classes

* Common settings

Bullet Prefab Set a bullet prefab for the shot. (ex. sprite or model)
Bullet Num Set a bullet number of shot.
Bullet Speed Set a bullet base speed of shot.
Acceleration Speed Set an acceleration of bullet speed.
Use Max Speed Use max speed flag.
Max Speed Set a bullet max speed of shot.
Use Min Speed Use min speed flag.
Min Speed Set a bullet min speed of shot.
Acceleration Turn Set an acceleration of bullet turning.
Use Pause And Resume This flag is pause and resume bullet at specified time.
Pause Time Set a time to pause bullet.
Resume Time Set a time to resume bullet.
Use Auto Release This flag is automatically release the bullet GameObject at the specified time.
Auto Release Time Set a time to automatically release after the shot at using UseAutoRelease. (sec)
Shot Finished Callback Events Set a callback method after shot.

* Circle Shot (UbhCircleShot.cs)

There is not private settings.

* Hole Circle Shot (UbhHoleCircleShot.cs)

Hole Center Angle Set a center angle of hole. (0 to 360)
Hole Size Set a size of hole. (0 to 360)

* Hole Circle Shot Lock On (UbhHoleCircleLockOnShot.cs)

Hole Center Angle Not use.
Hole Size Set a size of hole. (0 to 360)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.

* Homing Shot (UbhHomingShot.cs)

Between Delay Set a delay time between bullet and next bullet. (sec)
Homing Angle Speed Set a speed of homing angle.
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.

* Linear Shot (UbhLinearShot.cs)

Angle Set a angle of shot. (0 to 360)
Between Delay Set a delay time between bullet and next bullet. (sec)

* Linear Shot Lock On (UbhLinearLockOnShot.cs)

Angle Not use.
Between Delay Set a delay time between bullet and next bullet. (sec)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.
Aiming Always aim to target.

* nWay Shot (UbhNwayShot.cs)

Way Num Set a number of shot way.
Center Angle Set a center angle of shot. (0 to 360)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* nWay Shot Lock On (UbhNwayLockOnShot.cs)

Way Num Set a number of shot way.
Center Angle Not use.
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.
Aiming Always aim to target.

* Over Take nWay Shot (UbhOverTakeNwayShot.cs)

Way Num Set a number of shot way.
Center Angle Set a center angle of shot. (0 to 360)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Diff Speed Set a difference speed between shot and next line shot.
Shift Angle Set a shift angle between shot and next line shot. (-360 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* Over Take nWay Shot Lock On (UbhOverTakeNwayLockOnShot.cs)

Way Num Set a number of shot way.
Center Angle Not use.
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Diff Speed Set a difference speed between shot and next line shot.
Shift Angle Set a shift angle between shot and next line shot. (-360 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.

* Paint Shot (UbhPaintShot.cs)

Paint Data Text Set a paint data text file. (ex.[UniBulletHell] > [Example] > [PaintShotData] in Project view)
Paint Center Angle Set a center angle of shot. (0 to 360) (center of first line).
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* Paint Shot Lock On (UbhPaintLockOnShot.cs)

Paint Data Text Set a paint data text file. (ex.[UniBulletHell] > [Example] > [PaintShotData] in Project view)
Paint Center Angle Not use.
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.

* Random Shot (UbhRandomShot.cs)

Random Center Angle Set a center angle of random range. (0 to 360)
Random Range Size Set a angle size of random range. (0 to 360)
Random Speed Min Set a minimum bullet speed of shot.
Random Speed Max Set a maximum bullet speed of shot.
Random Delay Min Set a minimum delay time between bullet and next bullet. (sec)
Random Delay Max Set a maximum delay time between bullet and next bullet. (sec)
Evenly Distribute Evenly distribute of all bullet angle.

* Random Shot Lock On (UbhRandomLockOnShot.cs)

Random Center Angle Not use.
Random Range Size Set a angle size of random range. (0 to 360)
Random Speed Min Set a minimum bullet speed of shot.
Random Speed Max Set a maximum bullet speed of shot.
Random Delay Min Set a minimum delay time between bullet and next bullet. (sec)
Random Delay Max Set a maximum delay time between bullet and next bullet. (sec)
Evenly Distribute Evenly distribute of all bullet angle.
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.
Aiming Always aim to target.

* Random Spiral Shot (UbhRandomSpiralShot.cs)

Start Angle Set a starting angle of shot. (0 to 360)
Shift Angle Set a shift angle of spiral. (-360 to 360)
Random Range Size Set a angle size of random range. (0 to 360)
Random Speed Min Set a minimum bullet speed of shot.
Random Speed Max Set a maximum bullet speed of shot.
Random Delay Min Set a minimum delay time between bullet and next bullet. (sec)
Random Delay Max Set a maximum delay time between bullet and next bullet. (sec)

* Random Spiral Multi Shot (UbhRandomSpiralMultiShot.cs)

SpiralWayNum Set a number of shot spiral way.
Start Angle Set a starting angle of shot. (0 to 360)
Shift Angle Set a shift angle of spiral. (-360 to 360)
Random Range Size Set a angle size of random range. (0 to 360)
Random Speed Min Set a minimum bullet speed of shot.
Random Speed Max Set a maximum bullet speed of shot.
Random Delay Min Set a minimum delay time between bullet and next bullet. (sec)
Random Delay Max Set a maximum delay time between bullet and next bullet. (sec)

* Spiral Shot (UbhSpiralShot.cs)

Start Angle Set a starting angle of shot. (0 to 360)
Shift Angle Set a shift angle of spiral. (-360 to 360)
Between Delay Set a delay time between bullet and next bullet. (sec)

* Spiral nWay Shot (UbhSpiralNwayShot.cs)

Way Num Set a number of shot way.
Start Angle Set a starting angle of shot. (0 to 360)
Shift Angle Set a shift angle of spiral. (-360 to 360)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* Spiral Multi Shot (UbhSpiralMultiShot.cs)

SpiralWayNum Set a number of shot spiral way.
Start Angle Set a starting angle of shot. (0 to 360)
Shift Angle Set a shift angle of spiral. (-360 to 360)
Between Delay Set a delay time between bullet and next bullet. (sec)

* Spiral Multi Nway Shot (UbhSpiralMultiNwayShot.cs)

SpiralWayNum Set a number of shot spiral way.
Way Num Set a number of shot way.
Start Angle Set a starting angle of shot. (0 to 360)
Shift Angle Set a shift angle of spiral. (-360 to 360)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* Spread nWay Shot (UbhSpreadNwayShot.cs)

Way Num Set a number of shot way.
Center Angle Set a center angle of shot. (0 to 360)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Diff Speed Set a difference speed between shot and next line shot.

* Spread nWay Shot Lock On ( UbhSpreadNwayLockOnShot.cs)

Way Num Set a number of shot way.
Center Angle Not use.
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Diff Speed Set a difference speed between shot and next line shot.
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.

* Waving nWay Shot (UbhWavingNwayShot.cs)

Way Num Set a number of shot way.
Wave Center Angle Set a center angle of wave range. (0 to 360)
Wave Range Size Set a size of wave range. (0 to 360)
Wave Speed Set a speed of wave. (0 to 10)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* Waving nWay Shot Lock On (UbhWavingNwayLockOnShot.cs)

Way Num Set a number of shot way.
Wave Center Angle Not use.
Wave Range Size Set a size of wave range. (0 to 360)
Wave Speed Set a speed of wave. (0 to 10)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.
Aiming Always aim to target.

* Sin Wave Bullet nWay Shot (UbhSinWaveBulletNwayShot.cs)

Way Num Set a number of shot way.
Center Angle Set a center angle of shot. (0 to 360)
Wave Range Size Set a size of wave range. (0 to 360)
Wave Speed Set a speed of wave. (0 to 30)
Wave Inverse Flag to invert wave.
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)

* Sin Wave Bullet nWay Shot Lock On (UbhSinWaveBulletNwayLockOnShot.cs)

Way Num Set a number of shot way.
Center Angle Not use.
Wave Range Size Set a size of wave range. (0 to 360)
Wave Speed Set a speed of wave. (0 to 30)
Between Angle Set a angle between bullet and next bullet. (0 to 360)
Next Line Delay Set a delay time between shot and next line shot. (sec)
Set Target From Tag Set a target with tag name.
Target Tag Name Set a unique tag name of target at using SetTargetFromTag.
Random Select Tag Target Flag to select random from GameObjects of the same tag.
Nearest Select Tag Target; Flag to select nearest from GameObjects of the same tag.
TargetTransform Transform of lock on target.
It is not necessary if you want to specify target in tag.
Aiming Always aim to target.

Contact

Please contact us if you have any questions.
e-mail
support forum


Presented by westhillapps.com >>