There may be an issue with WebGL (HTML5) builds.  But the web player works fine.

That script is for the Control Freak add-on.  If that's coming up, you're probably trying to use Control Freak input?

At any rate, check that the script actually exists (..\Assets\Plugins\Control-Freak\) and make sure it's attached to your prefab.

On the other hand, if you aren't intending to use Control Freak, then make sure it's not in the scene before playing/building.

28

(3 replies, posted in UFE 1 (Deprecated))

A small note on recoverable damage.  It's not too hard to mod in, but you will need Source version.

29

(19 replies, posted in Tips & Articles)

knightgabriel4eva wrote:

can we mirror projectile as well??

To mirror projectiles, you'll just need to apply the same principle of rotating the transform when you instantiate it.  Have a look at the Projectile creation parts of the code and you should be able to work it out.

GameFinderToday wrote:

There is another problem:
As mentioned above,it only rotate the particle not really mirror.

This system assume you're using 3D particles, so rotating them 180 in y axis will work.  If you're using 2D sprite particles, then you'll want to multiple x axis by -1 instead of rotating y by 180.

If your game has both 3D and 2D particles, I would suggest creating another bool to check for 2D particle to mirror.

30

(9 replies, posted in UFE 1 (Deprecated))

The easiest way to create your stage is to use the default Training Room so you keep its floor collision in the correct location.  Then just hide/disable the training room mesh and put your own stage in there.

Example Usage
This example unlocks the next available character upon finishing Story Mode.

First, set up your Story Mode.  I've removed all characters except Mike from the available selections in Story Mode and Versus Mode. 

http://i.imgur.com/jdEwZkH.png

I'm also using the default Story Mode example but I've changed it so it's just 2 battles - one against a random opponent between Mike/Joan/MecanimJoan, and the last is a boss battle with Robot Kyle.

http://i.imgur.com/GgHFOSA.png

Either open StoryModeTextureScreen.cs or copy it and modify it as your own.  Inside, we need to add three things.

First, in the public override void OnShow () method just below:

base.OnShow ();

add:

UFE.OnStoryModeCompleted += this.OnStoryModeCompleted;

Then just below the OnShow function, create an OnHide() method like the below:

    public override void OnHide() {
        base.OnHide();

        UFE.OnStoryModeCompleted -= this.OnStoryModeCompleted;
    }

These will take care of hooking into the UFE Event OnStoryModeCompleted, which we'll use to trigger the unlocks.

Finally, create the actual OnStoryModeCompleted function like the below:

    public void OnStoryModeCompleted(CharacterInfo character) {
        /*
         * This function hooks into the UFE event OnStoryModeCompleted,
         * which is triggered when Story Mode is completed.
         * 
         * Characters are unlocked in order they are listed in Global Config.
         * When the last character is played, 
         * 
         */

        // Loop through the Characters list and find the corresponding ID for played character
        int currentCharacterID = 0;
        for (int i=0; i<UFE.config.characters.Length; i++) {
            if (character.characterName == UFE.config.characters[i].characterName) {
                currentCharacterID = i;
                break;
            }
        }

        CharacterInfo newCharacter = null;

        // Prevent trying to unlock a character outside of the list
        if (currentCharacterID < UFE.config.characters.Length-1) {
            newCharacter = UFE.config.characters[currentCharacterID+1];
        }

        // Finally, unlock the character in Story and Vs
        if (newCharacter != null) {
            UFE.UnlockCharacterInStoryMode(newCharacter);
            UFE.UnlockCharacterInVersusMode(newCharacter);
            Debug.Log("Unlocked " + UFE.config.characters[currentCharacterID+1].characterName + "!");
        } else {
            Debug.Log("We've unlocked all the characters now, none left to unlock!");
        }

    }

In this thread, I'll give you information on the character unlocking functions included in UFE and also an example of how you can use them in your game.

This first post is informational about each of the included functions.  You won't need Source to use the functions, but Source will help you understand them better and possibly help with creating your own functions should you need them.

Click here to skip to the tutorial.

Unlocking Related Methods
All Character Unlocking related methods are located in UFE.cs, inside the region "public class methods: methods related to the character selection".  Each of these can be used with the prefix UFE. (e.g. UFE.LoadUnlockedCharacters();).

public static void LoadUnlockedCharacters()
This function loads the currently unlocked characters.  It is run automatically in UFE.cs Awake() method.  You may want to call this function after any new characters have been unlocked (to ensure they're loaded).


public static void SaveUnlockedCharacters()
This function saves the currently unlocked characters.  If you right click and select Find References in MonoDevelop, you'll see this is called from a number of the other functions below.  If you coded your own function and need to save the currently unlocked characters, then you should call this function with SaveUnlockedCharacters() if your code is in UFE.cs, or UFE.SaveUnlockedCharacters() if elsewhere.


public static void RemoveUnlockedCharacterInStoryMode(CharacterInfo character)
This function removes the provided character from Story Mode selection.  Use this for removing a single character from story mode selection.


public static void RemoveUnlockedCharacterInVersusMode(CharacterInfo character)
This function removes the provided character from Versus Mode selection.  Use this for removing a single character from versus mode selection.


public static void RemoveUnlockedCharactersInStoryMode()
This function removes all unlocked characters from Story Mode selection.  Use this to remove all unlocked characters from story mode selection.


public static void RemoveUnlockedCharactersInVersusMode()
This function removes all unlocked characters from Versus Mode selection.  Use this to remove all unlocked characters from versus mode selection.


public static void UnlockCharacterInStoryMode(CharacterInfo character)
This function unlocks the provided character in Story Mode selection.  Use this to unlock a specific character for story mode.


public static void UnlockCharacterInVersusMode(CharacterInfo character)
This function unlocks the provided character in Versus Mode selection.  Use this to unlock a specific character for versus mode.

33

(3 replies, posted in UFE 1 Source (Deprecated))

If they are already in blockstun, then they can probably still block the move that has a block area of 0.  If you want to make a move unblockable while opponent is in blockstun, then you'll need to code that in.

It's not too hard actually (create a bool "Hit.unblockable", and during the Hit checks under // Block, just check the !hit.unblockable), but keep in mind that you're potentially creating unintended behaviour (unblockable situations [block strings], which should always be avoided in games).  Put the move on a timer, require meter or some other way to balance it and you should be fine.

34

(9 replies, posted in UFE 1 (Deprecated))

Stage Creation

35

(64 replies, posted in UFE 1 (Deprecated))

Probably not those particular mods.  But some others may be incorporated.

36

(10 replies, posted in UFE 1 (Deprecated))

it's best to have it as 1 usually.  I've found anything less gives strange results.  You could have it more, if your reaction animation suited such a distance.

37

(1 replies, posted in UFE 1 (Deprecated))

It sounds like you've deleted the Main Menu prefab? 

The default location for that is: \Assets\UFE\GUI\UI\MainMenuScreen.prefab

Most likely, you haven't added the extra slots to the Character Select Screen prefab.

Have a look at these threads/posts that discuss the character select screen:

Adding Character Slots to Select Screen Prefab
3D Character Select Screen Mod
Character Select Screen Portraits

If you're still stuck, post back here.

39

(5 replies, posted in Tips & Articles)

What settings are on the the Opponent Override?

Admittedly, I haven't tried air throws yet, so it could be that it's not possible currently.  When I get a chance next, I'll try to make an air throw and see if I can find the source of the issue.

40

(5 replies, posted in Tips & Articles)

I assume you've set the Hit Conditions to Stand/Crouch, Air, Stunned?

  1. If you have vertical force on your hurt box, then that effectively makes it a knockdown attack.

  2. Twrmois is right, there are options for Quick Stand and Delayed Stand.  However, they placeholders for now until we put the functionality into ControlScripts.  If you have Source, you'll also see a few other variables created for these functions.

  3. If you create a move where the command is to tap 5 times, then make sure it's only possible to do when Down, then that should work for your purposes.

  4. As above.

42

(12 replies, posted in UFE 1 (Deprecated))

Did you actually solve the multiple Event Systems problem, or is that just not happening due to the new one?

That Null Exception error is basically the Legacy Control system trying to access the Animator component, but maybe the Game Object attached has been destroyed (so Animator component is not there).

You could resolve this particular error by just making sure the Animator component is there before trying to access it.

In the IsPlaying(string clipName) method in LegacyControl.cs, replace the line:

return (animator.IsPlaying(clipName));

with:

if (animator != null) {
    return (animator.IsPlaying(clipName));
} else {
    return null;
}

What's more concerning is that this happened at all, as we haven't encountered this null exception error before.  Do you have any mods in your scripts?

43

(3 replies, posted in UFE 1 (Deprecated))

I've just used a hurt box at about the position of the fallen character.  But this assumes the throw reaction is a canned animation, so you pretty know exactly where the opponent will be.  If you're using forces applied, then the opponent's position could vary.

If you want a move to execute during <Hold Direction> + Button, you can achieve a close result by just putting the direction into the Execution list with the button.  This is because Left and Right are also tied to movement, so it counts as being held or pressed for this purpose.

Try removing the Animation component from the Main Camera.  The file you include in the Cinematic Options will automatically be assigned to the Camera during the cinematic.

Technically, you could achieve a similar result by changing the input to Charge Move and entering the time you want the first Back (in Button Sequences) to be held.

Did you follow the guide for importing your own characters?

48

(3 replies, posted in UFE 1 (Deprecated))

Yeah, I noticed this too. We missed this one on the last update.

Here's the fix (for DefaultOptionsScreen.cs, but apply it to your own custom if you're using one):

First, declare a GameObject for our Options panel (we'll disable this when cInput is on):

public GameObject optionsPanel;

then inside:

public override void DoFixedUpdate (){

at the end of the Axis declarations, add the following bool:

bool showingInputGUI = cGUI.showingInputGUI;

The remaining code in DoFixedUpdate() is the detection for the Options screen.  So we just need to disable that when cInput is up. So add the following just before it:

        if ((UFE.isCInputInstalled && UFE.config.inputOptions.inputManagerType == InputManagerType.cInput)
            && showingInputGUI) {
            // disable controls button while setting controls.
            optionsPanel.SetActive(false);
        } else {
            optionsPanel.SetActive(true);

this is an incomplete if statement, so go to the end of the DoFixedUpdate function and add a:

        }

just before the its closing } there.  Also indent the section you've now put into the else condition, so it looks neat smile.

Don't forget to assign the Options panel in the Inspector of the Options Prefab!  You may need to redesign your menu to suit (just put everything into a panel to easily disable it all at once).

How are you adding the model?  And by model, do you mean the Character File, or the actual character mesh/prefab?

50

(1 replies, posted in UFE 1 (Deprecated))

Yep, this one is a bug.  I've added it to the list.