Import Errors

If you receive any errors upon import it is likely because of a namespace conflict. Lets say that you have an existing project and in that project you have a class named Health:

using UnityEngine;

public class Health : MonoBehaviour
{
    /// <summary>
    /// Damages the object.
    /// </summary>
    public void Damage()
    {
        // My implementation.
    }
}

If you have this class in your project and import the Ultimate Character Controller you’ll receive errors similar to:

Assets/Opsive/UltimateCharacterController/Demo/Scripts/DamageZone.cs(68,22): error CS1501: No overload for method `Damage’ takes `4′ arguments

The reason this error exists is because the original Health component in your project is corrupting the global namespace and the compiler which doesn’t know which Health component to use. The fix for this is to ensure all classes are in a namespace. You can fix this error by adding my original Health component to its own namespace:

using UnityEngine;

namespace MyProject
{
    public class Health : MonoBehaviour
    {
        /// <summary>
        /// Damages the object.
        /// </summary>
        public void Damage()
        {
            // My implementation.
        }
    }
}

Demo Scene

The Ultimate Character Controller Demo scene will not work if you only have the First Person Controller or the Third Person Controller imported. You should instead use the First/Third Person Controller Demo scene. The Ultimate Character Controller Demo scene requires both the First Person Controller and the Third Person Controller to be imported.

Lightmapping

In order to reduce the download size the demo scene does not contain any lightmapping. When the scene first opens it will start to bake the lights but if the lights are not baked before hitting play the Lights GameObject will be automatically disabled to prevent the scene from running slowly. To prevent the Lights GameObject from being disabled you should first bake the scene.

Import Time

The Ultimate Character Controller contains many animations/textures which increase the amount of time that it takes to import the asset. If you don’t care about the demo scene content and want an extremely fast import time you can deselect the Opsive/UltimateCharacterController/Demo folder and it will not bring in any assets used within the demo scene. Note that this will not bring in any animator controllers or animations so if you want these make sure you import the Demo/Animations and Demo/Animator folders.

Animation Import Warnings

When you import the Ultimate Character Controller into a fresh project you should receive no errors but there will be some warnings related to the animations, such as:

File ‘AimWalkFwd’ has animation import warnings. See Import Messages in Animation Import Settings for more details.

The reason this warning exists is because the animations were authored in Blender and Unity doesn’t like the way Blender exported the animation. Unfortunately there’s not a way around this but this is a one time warning and does not affect the animations when they are playing.