Giter Site home page Giter Site logo

digitalmachinist / unity-utilities Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 1.0 1023 KB

A collection of utilities for Unity (with accompanying documentation and test scenes) that I use in personal projects and at Axon Interactive.

License: Other

C# 100.00%

unity-utilities's Introduction

unity-utilities

A collection of utilities for Unity (with accompanying documentation and test scenes) that I use in personal projects and at Axon Interactive. It includes a variety of tools that can be used together or separately to make game development a little bit easier.

Attributes

Assets/Utilities/Attributes

This library contains a collection of attributes that modify how different types are rendered in the Inspector.

Color Picker

Assets/Utilities/Color Picker

This library contains the ColorPicker component; a utility to sample colors from geometry in Unity scenes both in the editor and while playing.

Extension Methods

Assets/Utilities/Extension Methods

This library contains a collection of extension methods for built-in Unity types that make common development tasks easier.

Foldable Events and Promises

Assets/Utilities/Foldable Events

This library contains the FoldableEvent class, which folds up in the inspector to hide the base UnityEvent they rely upon, and the FoldablePromise class which provides powerful features for unraveling dependency chains, such as complex scene loading processes.

Health System

Assets/Utilities/Health

This library contains the Health component, which provides the usual HP health systems one might expect and exposes a wide variety of events to signal changes in health. Also, this component provides special handling for regenerative, degenerative, and effects that heal above the standard maximum HP.

State Machine

Assets/Utilities/State Machine

This library contains the AnimatorStateMachine component, which augments the built-in Animator to provide a full-featured state machine for handling game state, control context, UI screens, PC animation states... you name it. It also exposes the AnimatorState class, a specialized StateMachineBehaviour which complements StateMachine to provide these features. It can even handle layered Mechanim state machines now!

Xbox 360 Gamepad

Assets/Utilities/Xbox 360 Gamepad

This library contains the Xbox360Gamepad component, a robust and full-featured control abstraction for 1 to 4 Xbox 360 Gamepads. It exposes all buttons as events, provides a variety of options for accessing control axes and buttons, and provides an API for controlling vibration. It is based on XInput, and thus is only compatible with Windows PCs.

unity-utilities's People

Contributors

digitalmachinist avatar

Stargazers

PassionateBiceps avatar 汤姆猫X avatar Hamza Lazaar avatar Vitalii Stepanenko avatar Austin Bossetti avatar  avatar alexokita avatar Oleh Stolyar avatar

Watchers

James Cloos avatar  avatar

Forkers

beardedinlair

unity-utilities's Issues

States function incorrectly when multiple layers are used.

With the use of layers in Mechanim it is conceptually equivalent to being in multiple states at once. The current implementation of the state machine utilities will incorrectly transition out of states when transitions occur in different layers.

I addressed this by adding an 'int layerIndex' field to StateMachine, adding multiple StateMachines to my Animator's game object, and then when a State boots up in OnStateEnter and searches for a StateMachine, it makes sure that it picks the one with the matching layer.

Additionally, it might be worth noting in a "Limitations" section that the State class will not function at all correctly if added to a Sub-State Machine node. The reason for this is that the OnStateEnter/Exit callbacks are called for every single state and transition inside the sub-state machine. I address this by only ever putting State classes on non-Sub-State nodes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.