⮞ Go to NeoFPS.com

    Show / Hide Table of Contents

    NeoFPS Input System

    Overview

    NeoFPS is built from the ground up to facilitate developing first person shooters for PC and console.

    In order for NeoFPS' input system to work it requires a number of custom project settings to be applied. For more information see the Input Settings page.

    Unity's existing input system has a number of shortcomings when designing a control scheme. This has led Unity to develop a new input system which is currently in testing.

    NeoFPS extends the current input system to address a number of its problems. It adds features such as:

    • Runtime bindable keys
    • Consistent gamepad profiles
    • Mouse smoothing and accleration
    • Input contexts (character, menu, etc).

    Once Unity's new input system is in full release the NeoFPS system will be adapted to that. You can also completely replace the NeoFPS input system if you have an input solution that you prefer. Look at the existing input handlers to see which properties and methods they access and use these with your preferred system.

    Input Contexts

    In order to categorise inputs and control which inputs are active at any time, NeoFPS makes use of input contexts. These contexts are defined in the FpsInputContext generated constant through the [NeoFpsInputManager][6] asset. Each input handler defines its input context in script and its inputs will only be processed if its context is either None or if no higher priority context is active. Context priority is simply based on the constant value, with higher numbers being higher priority. A context becomes active when one or more input handlers with that context are active. For example, if a UI element has a InputMenu handler attached to it, then when the UI element is active all character input will be blocked.

    Keyboard

    NeoFPS is preset with a full WASD control scheme, but any keys can be remapped from the in-game menu. The available buttons and their default key bindings can be specified in the [NeoFpsInputManager][6] asset.

    Key Bindings

    At the top of the input bindings menu is a drop down to reset to defaults. This also allows you to select a keyboard layout. Resetting to a different keyboard layout will map the keys so that the hand positions match a Qwerty keyboard. Available keyboard layouts currently include:

    • Qwerty
    • Azerty
    • Qwertz
    • Dvorak
    • Colemak

    To request more keyboard layouts, please contact support via the discord, or using support@neofps.com

    Mouse

    NeoFPS features detailed mouse support with inverse look, smoothing and acceleration.

    Mouse Options

    Smoothing

    Mouse smoothing is performed with a weighted average system. You can customise the number of frames to look back as well as the weighting to apply in the MouseAndGamepadAimController behaviour.

    Acceleration

    Acceleration can be customised via the MouseAndGamepadAimController behaviour, including setting limits and whether the acceleration is linear or quadratic.

    Gamepads

    Gamepad support in Unity can be quite complicated, with the same gamepad being mapped differently across platforms.

    For more information see the Unity Wiki

    NeoFPS maps all of the available axes and buttons of the gamepad and wraps them up into preset profiles. The player can then choose between these profiles from the in-game menus.

    Gamepad Options

    On console those profiles might be fairly minimal such as standard and south paw. On standalone builds there might be a number more options as more individual controllers are supported. You can set up your own gamepad profiles via the [NeoFpsInputManager][6].


    See Also

    Input Settings

    Creating Custom Input Handlers

    Back to top Copyright © 2019 Yondernauts Game Studios Ltd
    Generated with DocFX