A character controller is a script (or set of scripts) that handles all of your character requierements (being the movement the most obvious one). Due to the vast variety of games out there, it is not possible to determine a unique general solution for everyone. CCP was (and will be) designed to work as a multi purpose character controller, trying to cover as much ground as possible.
Currently it only supports an upright capsule based character. This basically means that the vertical direction of the capsule will always be transform.up.
Yes, CCP supports 2D and 3D Physics, as well as 2D and 3D movement.
In the simulated physics world there are kinematic and dynamic rigidbodies (each one having its own advantages and disadvantages). CCP uses a dynamic approach to physics, this means that the character is built upon a dynamic rigidbody working with Unity's Physics. The movement is performed by modifying the velocity of the rigidbody directly.
Yes and no, it depends. Making this character controller 100% compatible with the Physics API is my own personal goal, i would love to have that in my asset. Unfortunately, Unity does not provide many tools for physics programmers in this regard (only OnTriggerXXX and OnCollisionXXX), so most of the things we use are tricks to get a perfect balance between control and compatibility.
The character controller understand only about velocity changes (Rigidbody.velocity or Rigidbody2D.velocity). Applying forces to a rigidbody does not change any of its internal properties, so forces cannot be applied to this specific character controller (at least using AddForce, AddExplosionForce, or similar).
The relation between velocity and force is pretty simple (just a formula), so, if you want to apply that same force to the character it should be easy to achieve.
Any game that requires a physics based capsule shaped character. A RTS game, a 2D platformer, a horror game, a first person shoter, etc.
The reason behind this decision is extensibility. The entire asset is designed with layers. The Core consists of the character controller (and some other important components), and it is the main layer. The implementation use this "Core" in some way, but at the same time it is designed in layers as well. If you don't like the implementation you can just delete that from your project, and use only the Core.
The Demo part includes all the example assets and components used by the demo scenes (from materials to character states). This also involves gameplay logic, meaning that what you play in the demo is just my own movement math. It is important to note that this is just one way of doing things, the character controller helps you to achieve that, the result you get will depend on your own movement math, something unique to each game. I would highly recommend you to get this right, since this is not related with the character controller itself.
Achieved? Yes, although the asset does not come with anything like this, meaning that you'll need to code it. By default the asset comes with the movement logic you experience in the demo. Any custom movement logic can be created/extended by you using the character state logic (from the "Implementation"). All the character states found in the demo are provided as examples.
No, CCP currently supports only <1,1,1> scale. If you need to scale your character you should scale the graphics object (what you actually see on screen, the renderer component), then modify the character body size to fit the graphics.
It won't. This package is oriented to what most developers need, being the capsule character the most common scenario.
There are a couple of reasons why, here are some of them:
If you have in mind a very specific character , or maybe , in this case i can't guarantee this package is for you. If you want to be 100% percent sure please contact with me, i will tell you honestly is this is for you or not.