Project Categories

Project Setting Personal
Team Size 1
Role(s) Creator / Developer
Languages C#
Software/Tools Used Unity (engine), Visual Studio (IDE)
Status Released (no formal versioning due to being a collection)

About

GW-Standard-Unity is a repository of cross-project assets for my games. I noticed that I was re-implementing similar functionality for multiple projects, so I decided to make a universal, independent repo for these functions. Currently, this repo contains extensions to Unity UI Sliders, a highly generalized rigidbody first person controller, and a free-flying camera (originally created for a demo for this repo, but will likely be useful in other projects as well, e.g. some sort of dev-console command).

My Work

Slider Extensions

  • SliderTextLoadExtension: a MonoBehaviour class that is attached to and tied with sliders, is handled externally (either directly through Unity event attachment or a custom event handler)
  • SliderTransitionExtension: a class that is associated with a slider and an always-active parent MonoBehaviour, intended to be used with Dictionaries or similar, with the ability to update slider values easily and transitioning them under-the-hood
  • Full XML documentation
  • Fully functional Unity demo with instructions on usage

Controllers

FirstPersonController

  • Highly generalized rigidbody first person controller based on Unity's new Input System using its event-based features (to only read input values when there is input)
  • Offers many settings (such as different speed settings depending on type of movement, controller's physical characteristics, force magnitudes, etc), with exposed settings that can be set by players (such as base FOV, whether speed modifiers are toggled or held, camera sensitivity, etc.) or by game context (such as speed multiplier, the ability to move, etc.)
  • Invokes UpdateMovementState, a way for other optional systems to be tied to the controller and keep separation of concerns
  • Includes a ControllerSoundSystem and ControllerAnimationSystem already made fully functional, prototype-ready (or even production-ready) samples for handling UpdateMovementState
  • Includes a defined set of InputActions so that the controller is ready out-of-the-box with support for keyboard/mouse and gamepad inputs
  • Full XML documentation

FreeFlyCam

  • Rudimentary free-flying camera that can move along all three axes and rotate vertically/horizontally
  • Ability to lock camera in place so that mouse input can affect other things (such as UI) rather than camera control (assuming included InputActions are used)
  • Full XML documentation

Samples

These are some videos and code snippets that come from the game.

Videos

Code

Places

Source Code GitHub Repo