Catégories : Tous - waves - music

par Mike Ton Il y a 9 années

1251

Unity 3D : Core Game Kit

The Core Game Kit involves a structured approach to managing game elements through prefabs and settings. Only one LevelWaveSettings prefab should exist per scene to ensure proper functionality.

Unity 3D : Core Game Kit

Core Game Kit

prefabs

LevelWaveSettings
Static

LevelSettings.

RestartWave();

UnpauseWave();

PauseWave();

IsGameOver = true

Show

ShowLevelWaves

(instance)

prop

Prefab

To Spawn

(Transform)

Prefab Pool

Specific

float

Delay Wave (sec)

Time To Spawn All

Max To Spawn

Min To Spawn

Variable

Waves#

Levels#

[n]

Level [n] Waves

Wave [n]

misc

Wave Completion Bonus

Add Variable Modifier

Skip Wave Type

Don't waste player dealing with weak enemies

If World Variable Below

If World Variable Above

Music

AudioClip

Volume

Play New

Keep Previous Music

id

Type

Elimination

All spawn must be destroyed(or despawned) before advancing to the next wave.

//can also be set to a percentage of the wave; 50% killed == spawn next wave

Timed

Duration

(sec)

After x seconds, next wave will start

Name

"WAVE_ONE"

Show WorldVariables

Show Syncro Spawner

color

green

powerups

red

enemies

name

Show Prefab Pools Section

Show Pool Boss Section

Core GameKit now includes Pool Boss!

object pre-loading and reuse system to avoid Instantiate and Destroy calls during game play

init

Main Config

(Debug)

Log Messages

will log to the Console events such as Level Up, Wave Up, and Spawner Wave initiating

Custom Start Wave

for testing higher waves without having to play the lower ones.

Listener

drag in a LevelSettingsListener to hook into key events and do customized coding.

(Waves)

Game Over Music

Silence

PlayNew

KeepPreviousMusic

Wave Restart Mode

modes

Despawn Spawned

any spawns will despawn

Destroy Spawned

any spawns that are Killables will have their Destroy

Leave Spawned

nothing happens.

what happens to already spawned objects when you restart a wave of syncro spawners.

Auto Start Waves

false

first wave starts paused

Call LevelSettings.UnpauseWave to start the first wave

Use Global Waves

true

Can also be triggered by World Variables

trigger "Game Over" on wave completion

will turn off all Triggered Spawners and Killables

Unless their Game Over Behavior from the default of "Disable".

Use Music Settings

enable music per wave

else use exteranl config/settings for audio

Syncro Spawners Off

MUST

ONLY ONE

one LevelWaveSettings prefab in any scene.

things that will definitely not behave correctly if you use more than one.

DO NOT

drag directly into scene; else data will be lost on next update.

INSTEAD

click the "Create LevelWaveSettings prefab" button.

// Instantiates the Prefab

scene

Scripts
ListenerScripts
Killable.cs
TriggeredSpawner.cs

other

Despawn

this is a checkbox that shows up for certain events that is primarily to keep you from having to create a Triggered Despawner also when you want to do prefab replacement. So if you want your prefab to turn into an explosion when it has a collision, you simply check “despawn this” and specify the explosion(s) to spawn, and you’re done.

Retrigger Limit

this allows you to prevent the prefab from spawning multiple of the same wave (by that event type) by specifying the minimum reactivation time in seconds or frames since the previous activation. In other words, if you don’t want a mouse click to spawn a wave more than twice a second, you can set Retrigger Limit Mode to “Time Based” and Min Seconds Between to 0.5. This settings defaults to “none”, meaning no limitation is made.

SpawnerScripts

DeSpawners

TimedDespawner.cs

will despawn a prefab after a preset amount of time that you set

ParticleDespawner.cs

automatically despawns a prefab with a Particle System (Shuriken) as soon as all the particles have disappeared

TriggeredDespawner.cs

This is an extension of the Triggered Spawner, but for despawning purposes. This can be used to make prefabs automatically despawn when they go off camera, hit objects from certain layers and more

TriggerSource.cs

Propagate Triggers

Child Spawner

//How to

3.

Now all that’s left is to configure the event(s) on the Child Spawner that you want to spawn waves of prefabs. Note that Parent Spawners will trigger the same event type, when they are activated, on the Child Spawners. In other words, if the Trigger event is activated on the Parent Spawner, it will then activate only the Trigger event on the Child Spawners. So set up your events accordingly.

In the Inspector, change Trigger Source for the Child Spawner to “Receive From Parent”.

Add a Triggered Spawner script to the child prefab

Child Spawners and Parent Spawners both use the same script – TriggeredSpawner.cs. If you already have a Triggered Spawner set up, simply add a child prefab under it

//Usage Reason

2.

spawn complex patterns of things not otherwise possible with the Triggered Spawner controls

1.

explosions to spawn from three different unrelated locations when a large enemy gets hit

Note: Child Spawners are not required to have a Renderer Component to spawn OnVisible event waves. We only need the Parent Spawner to have it.

Note: You can nest Child Spawners any number of levels deep. That’s where the real power of these simple settings comes into play.

Source

Receive from Parent

The setting for Child Spawners. All events on the Child Spawner itself will not cause any waves to be spawned, but when the Parent Spawner has those events occur, the Child Spawner will be notified to follow suit and also spawn its waves.

Self

the default setting. Events will be triggered as normal like a Parent Spawner should.

None

This basically disables the Triggered Spawner. This can be used for testing purposes or to disable Child Spawners without deleting them

events

full

NGUI

OnClick

CodeTriggeredEvent2

CodeTriggeredEvent1

Collision

2D

Trigger Exit 2D

Trigger Enter 2D

Collision2D

Trigger Exit

Trigger Enter

Must have collider

WTF

Must have rigidbody

One of which has gravity???

Mouse

MouseClick

MouseOver

Enabled

Disabled

OnCollision

OnBecameVisible

// will only work inside a prefab that has a Renderer component inside it

To Apply to any prefab

Component->Dark Tonic -> Core GameKit -> Spawners -> Triggered Spawner

(instance)LevelWaveSettings
WorldVariables

floats

Health

int

Lives

Score

//Managed by Core GameKit using a cached version of PlayerPrefs that has very fast performance on mobile devices

Spawners

"Enemies"

WaveSettings[Array]

WaveSettings[n]

RepeatWave

Spawn

Limit

Increase

RepeatPause

Max

TimedRepeatMode

StrictStyle

EliminationStyle

SpawnLimitControls

Distance

Random

Min

//Stop spawning until all spawns from wave satisfy

SpawnRotationMode

Vector3

WaveOffset

enum

CustomRotation

UseSpawnerRotation

UsePrefabRotation

PrefabToSpawn

Transform

PrefabType???

Speciific/PrefabPool

SPAWN MUST EXIST IN POOL BOSS

Self/WorldVariable

DelayWave(sec)

TimeToSpawnAll

MaxToSpawn

MinToSpawn

#

Wave#

Level#

Listener Prefab

???

Mode

Spawn Tag

Spawn Layer

Custom

Use Spawner Settings

Use Spawn Prefab Settings

Behaviour

Wave Pause

Game Over

ActiveMode

bool

World Variable Outside Range

World Variable in Range

Never

Always

PrefabPools

//Collection of eligible prefabs to spawn (weighted)

PoolBoss

if(Auto-AddMissingItems == false)

PREFAB MUST EXIST HERE TO SPAWN

Camera
WaveMusicChanger

MUST BE ATTACHED TO CAMERA TO PLAY WAVE MUSIC