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]
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.
4. Push the play button.
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.)
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 >>