Besides visual tools, UFE also comes with several easy to use classes, events and methods all done in C#.
You can find usage examples under UFE\Engine\Scripts\UI\Base\BattleGUI.cs
(Source) and UFE\Engine\Scripts\UI\Templates\DefaultBattleGUI.cs
.
void OnAwake(){ /* Subscribe to UFE events: * Possible Events: * OnLifePointsChange(float newLifePoints, ControlsScript player) * OnNewAlert(string newString, ControlsScript player) * OnHit(HitBox strokeHitBox, MoveInfo move, Hit hitInfo, ControlsScript player) * OnBlock(HitBox strokeHitBox, MoveInfo move, Hit hitInfo, ControlsScript player) * OnParry(HitBox strokeHitBox, MoveInfo move, Hit hitInfo, ControlsScript player) * OnMove(MoveInfo move, ControlsScript player) * OnRoundEnds(ControlsScript winner, ControlsScript loser) * OnRoundBegins(int roundNumber) * OnGameEnds(ControlsScript winner, ControlsScript loser) * OnGameBegins(ControlsScript player1, ControlsScript player2, StageOptions stage) * * usage: * UFE.OnMove += YourFunctionHere; * . * . * void YourFunctionHere(T param1, T param2){...} * * The following code shows more usage examples */ UFE.OnGameBegin += this.OnGameBegin; UFE.OnGameEnds += this.OnGameEnd; UFE.OnGamePaused += this.OnGamePaused; UFE.OnRoundBegins += this.OnRoundBegin; UFE.OnRoundEnds += this.OnRoundEnd; UFE.OnLifePointsChange += this.OnLifePointsChange; UFE.OnNewAlert += this.OnNewAlert; UFE.OnHit += this.OnHit; UFE.OnBlock += this.OnBlock; UFE.OnParry += this.OnParry; UFE.OnMove += this.OnMove; UFE.OnTimer += this.OnTimer; UFE.OnTimeOver += this.OnTimeOver; UFE.OnInput += this.OnInput; } void OnStart(){ UFE.StartIntroScreen(1f); } void OnDisable{ // Make sure to unsubscribe from events UFE.OnHit -= this.OnHit; } void OnDestroy{ // Make sure to unsubscribe from events UFE.OnHit -= this.OnHit; } public void OnGameBegin(ControlsScript player1, ControlsScript player2, StageOptions stage){ Debug.Log(player1.myInfo.characterName + " - " player1.playerNum); Debug.Log(player2.myInfo.characterName + " - " player2.playerNum); UFE.PlayMusic(stage.music); }
Use these to listen to several in-game events.
void OnLifePointsChange(float newFloat, ControlsScript player)
Triggered when the a character's life points change.
void OnGaugeUpdate(int targetGauge, float newValue, ControlsScript character)
Triggered when the a character's gauge meter change.
void OnNewAlert(string newString, ControlsScript player)
Triggered when the game fires a new alert (first hit, combo, round 1, etc.).
void OnHit(HitBox strokeHitBox, MoveInfo move, Hit hitInfo, ControlsScript player)
Triggered whenever a character gets hit.
void OnBlock(HitBox strokeHitBox, MoveInfo move, Hit hitInfo, ControlsScript player)
Triggered whenever a character blocks.
void OnParry(HitBox strokeHitBox, MoveInfo move, Hit hitInfo, ControlsScript player)
Triggered whenever a character parries.
void OnMove(MoveInfo move, ControlsScript player)
Triggered whenever a new move is cast by a character.
void OnBasicMove(BasicMoveReference basicMove, ControlsScript player)
Triggered whenever a basic move is cast by a character.
void OnButton(ButtonPress button, ControlsScript player)
Triggered whenever a button is pressed.
void OnBodyVisibilityChange(MoveInfo move, ControlsScript player, BodyPartVisibilityChange bodyPartVisibilityChange, HitBox hitBox)
Triggered whenever Body Parts Visibility Changes is casted.
void OnParticleEffects(MoveInfo move, ControlsScript player, MoveParticleEffect particleEffects)
Triggered whenever Particle Effects is casted in a move.
void OnRoundBegins(int roundNumber)
Triggered when the round begins.
void OnGameBegins(ControlsScript player1, ControlsScript player2, StageOptions stage)
Triggered when the game begins.
void OnGameEnds(ControlsScript winner, ControlsScript loser)
Triggered when the game ends. Usewinner.playerNum
orloser.playerNum
to know which player is which.
void OnTimer(Fix64 time)
Triggered whenever the timer ticks and returns the current timer value (Fix64).
void OnTimeOver()
Triggered when timer runs out.
void OnInput(InputReferences[] inputReferences, int player)
Triggered whenever a player presses a button.
You can find examples on all these under the following folders:
.\Core\Scripts\UI\Base\
(UFE Source and Bundle)
.\Scripts\UI\Templates\
(Any version)
Note: All screen transition methods use the Default Fade Duration value under Global Editor -> GUI Options. You can override this value by typing the time (in seconds) as a parameter. Example:
void OnStart(){ //Fades for 3 seconds before reaching the Main Menu: UFE.StartMainMenuScreen(3f); }
UFE.StartMainMenuScreen()
Fades from the current loaded screen (if any) to the main menu screen.
UFE.StartOptionsScreen()
Fades from the current loaded screen to the options screen.
UFE.StartCharacterSelectionScreen()
Fades from the current loaded to the selected character selection screen.
UFE.StartStageSelectionScreen()
Fades from the current loaded screen to the stage selection screen.
UFE.StartTrainingMode()
Starts the character selection screen and setsUFE.gameMode
toGameMode.TrainingMode
. See Training Mode Options for more information.
UFE.StartLoadingBattleScreen()
Fades to loading screen before starting the game. Its recommended you load the game this way, specially if you are using the Preload Options. Calling this function will use the current definedGameMode
and characters selected.
UFE.StartGame()
Skips the loading screens and fades to the game screen instantly. Calling this function will use the current definedGameMode
and characters selected.
UFE.StartIntroScreen()
Fades from the current loaded screen (if any) to the selected intro screen.
UFE.StartCreditsScreen()
Fades from the current loaded screen to the selected credits screen.
UFE.SetAIDifficulty(AIDifficultyLevel)
Sets the difficulty level for the current AI.
UFE.Quit()
Quits the application.
UFE.StartPlayerVersusPlayer()
UFE.StartCpuVersusCpu()
Starts the character selection screen with UFE.SetCPU set totrue
for both players. It also setsUFE.gameMode
toGameMode.VersusMode
.
UFE.StartPlayerVersusCpu()
Starts the character selection screen with UFE.SetCPU set totrue
for player 2. It also setsUFE.gameMode
toGameMode.VersusMode
.
UFE.StartVersusModeAfterBattleScreen()
Starts the option menu that shows after a match on Versus Mode.
UFE.StartStoryMode()
Starts the character selection screen and setsUFE.gameMode
toGameMode.StoryMode
. During Story ModeUFE.SetCPU
is set totrue
for player 2 and it runs a series of battles listed under Story Mode options while following the intro and outro instructions. All subsequent functions are executed automatically after this.
UFE.StartStoryModeOpeningScreen()
(*) Starts the opening screen. This function is automatically called after player selects the character onGameMode.StoryMode
.
UFE.StartStoryModeBattle()
(*) Starts the next battle listed on the story of this character. This function is automatically called after every conversation onGameMode.StoryMode
.
UFE.StartStoryModeContinueScreen()
(*) Starts the continue screen. This function is automatically called after the player loses a match onGameMode.StoryMode
.
UFE.StartStoryModeConversationBeforeBattleScreen(UFEScreen conversationScreen)
(*) Starts the conversation before battle listed on the story for this match. This function is automatically called after each battle onGameMode.StoryMode
.
UFE.StartStoryModeConversationAfterBattleScreen(UFEScreen conversationScreen)
(*) Starts the conversation after battle listed on the story for this match. This function is automatically called after each battle onGameMode.StoryMode
.
UFE.StartStoryModeCongratulationsScreen()
(*) Starts the congratulation screen. This function is automatically called after the player defeats all the opponents onGameMode.StoryMode
.
UFE.StartStoryModeEndingScreen()
(*) Starts the ending screen. This function is automatically called after the congratulations screen onGameMode.StoryMode
.
UFE.StartStoryModeGameOverScreen()
(*) Starts the game over screen. This function is automatically called after the continue screen timer runs out onGameMode.StoryMode
.
* These methods are used mostly internally. Make sure you know what you are doing before calling them!
UFE.SetPlayer1(CharacterInfo player1)
Sets the player 1 character (CharacterInfo class).
UFE.GetPlayer1()
Returns the player 1 selected character (CharacterInfo class).
UFE.SetPlayer2(CharacterInfo player2)
Sets the player 2 character (CharacterInfo class).
UFE.GetPlayer2()
Returns the player 2 selected character (CharacterInfo class).
UFE.SetCPU(int player, bool cpuEnabled)
Set ifplayer
(1 or 2) is controlled by the A.I. engine or a human player. Make sure you set this method before the battle begins.
UFE.SetLanguage(string language)
Set the language to one of the listed languages.
UFE.SetStage(string stageName)
Set the selected stage to one of the listed stages.
UFE.GetStage()
Set the selected stage (StageOptions class).
UFE.GetFont(FontId fontId)
(Deprecated) Returns the font (FontOptions class) based on the provided id (FontId enum) (as defined under global editor's fonts).
UFE.GetCurrentMoveSet(CharacterInfo character)
Returns the current selected move set (MoveSetData class) from the provided character.
UFE.SetLifePoints(float newValue, CharacterInfo character)
Set player's life points.
UFE.FireAlert(string alertMessage, CharacterInfo character)
Fire a new game alert. If you are usingGUIScript.cs
, the character provided will represent the side it will come out.
UFE.GetMusic()
Is the music on or off.
UFE.SetMusic(bool on)
Sets music on/off.
UFE.LoopMusic(bool loop)
Sets music looping mode on/off.
UFE.GetSoundFX()
Is the sound fx on/off.
UFE.SetSoundFX(bool on)
Sets sound fx on/off.
UFE.GetVolume()
Gets audio volume.
UFE.SetVolume(float volume)
Sets audio volume.
UFE.GetInputReference(ButtonPress button, InputReferences[] inputReferences)
Get Unity Input Manager's button reference based on an UFE assigned Key.
UFE.PlaySound(AudioClip sound)
Play a sound FX once (sound fx must be toggled on)
UFE.PauseGame(bool pause)
Pause Game.
UFE.IsPaused()
Is the game paused?
All public variables defined on the editors can be found and manipulated live using the following classes:
UFE.config
UFE.config.player1Character
or UFE.config.player2Character
UFE.config.player1Character.moves
or UFE.config.player2Character.moves
With the project open, use IntelliSense to reach the desired variable.