Version 3 of our character controller has been in development for more than a year and is now close to releasing. Ahead of the official launch we’d like to share some of the top features, though there have literally been hundreds of changes in this update!
New Locomotion Logic
The Character Locomotion movement logic has been reworked for version 3. Justin started with a completely new component and slowly built up the logic with all the lessons learned from version 2. This new system has many improvements:
- Better handling of protruding objects.
- Physic materials can be used.
- Box Colliders are now supported.
- The Rigidbody component is responsible for interpolation rather than the (now removed) Kinematic Object Manager. The character controller is still kinematic.
- Added callbacks for manual character script initialization.
- Improved support for (very very very) fast moving platforms.
- More options for performance optimizations.
As a result of these changes you can do some things that you weren’t able to do in version 2 – such as smoothly going over very rough or steeply sloped terrain.
Modular Item System
This is a huge change. The Ultimate Inventory System developer, Santiago, spent many months developing a new modular item system. In version 2, the magic item contained modular actions for the different states of the magic item. In version 3, every component has this flexibility. This really opens up a lot of possibilities for new functionality without having to change the item class.
Item Set Rules
Another change made by Santiago is from lessons learned integrating the Ultimate Inventory System. Item Sets still exist in version 3, but they can now be created dynamically through a new concept called Item Set Rules. Item Set Rules allows you to define at runtime when and where an Item Set is used, along with what category it contains. This makes it a lot easier to handle for instance the situation where your character can hold a lot of items.
Character Model Switching
Switching the character model at runtime has been a hot topic on the forum and we’re happy to say that it’s now supported out of the box. A new Model Manager component allows you to easily switch between the different character models.
One of the first things people want to do is to create a new character or item using their own models. Similar to version 2, you can create these through the Character or Item Manager, but that is a fresh object with only the bare bone functionality setup. You can then copy the presets with the State Configuration Scriptable Object, but that will only take you so far. In version 3, we have a new template field that will copy all of the values from the template object. This makes it extremely fast to build a new object that has the same functionality as the original object.
All of the major editors have been rewritten using Unity’s UIToolkit. This is most noticeable when you select the character at runtime – the performance is no longer degraded because IMGUI isn’t redrawing all of the elements every frame.
Goodbye Nolan, hello Atlas and Rhea. This male and female character duo are more style-generic and will be used across all of our assets going forward.
New Demo Scene
For version 3 we took a new approach to the demo scene. We created a simplified prototype scene that shows all of the functionality in different zones. This allows you to easily jump between zone sections for the specific feature you’re looking for.
The changes above are the major new features, but they are by no means the only improvements in version 3. We have spent a lot of time on the small things as well, such as an improved Animation Event Trigger, a native TextMesh Pro integration, improved Aim Assist ability, and so much more. We’re really looking forward to this release and can’t wait for you to get your hands on it!