Or buy it directly from here and pay with PayPal!


Do you like my work and want to buy me a coffee?
I won't hold you back!


If you are searching for a (MMO)RPG Camera and Controller asset for the game engine Unity which combines efficient code, great maintainability and ease of use, you have come to the right place! The asset is greatly inspired by famous RPG camera and character controls (esp. World of Warcraft) and was created with great love for detail.

Check out the demo or have a look at the following:



  • Arbitrary smooth orbit camera
  • Zoom into first person view
  • 3 different occlusion handlings: <Do Nothing>, <Tag Dependent>, <Always Zoom In>
  • Fading occluding objects out (if wanted)
  • Set the fade out and fade in alpha as well as the fading in/out duration
  • Enable/disable character fading and set the starting distance, ending distance and maximum fade out alpha value
  • 3 options for aligning the character with the camera view direction: <Never>, <On Alignment Input>, <Always>
  • 3 options for rotating with the character: <Never>, <Rotation Stopping Input>, <Always>
  • Turn on/off automatic alignment with the character when it's moving (with walking backwards support)
  • Movable camera pivot
  • Camera look up if it lies on the ground
  • Lock a rotation axis or set a maximum angle
  • Axes inversion
  • Minimum and maximum distance individually adjustable
  • Memorizing desired distance when the camera was forced to zoom in because of occlusion
  • Fast first person zoom and maximum distance zoom at the touch of a button
  • Easily change the used skybox
  • Custom transparent bumped diffuse shader provided
  • Compatible with Unity's third person controller asset (extra manual provided)
    ...and more


  • Set run, walking, sprinting, strafing and rotation speed (average speed is computed when strafing while running/walking)
  • Toggle walking and sprinting
  • Toggle an intelligent autorun
  • Set jump height and applied gravity
  • Allow an arbitray number of moves and their speed in mid-air after a standing jump
  • Turn on/off moving/rotating with moving/rotating objects, e.g. platforms, when standing on them
  • Also enable/disable if those objects affect your jump (e.g. always landing on the same point after a standing jump)
  • Sliding mechanics with adjustable sliding angle/threshold
  • Falling threshold
  • Mecanim animator for every implemented action
    ...and more

  • Focus on absolutely efficient code
  • Completely commented code
  • Written manual, video manual and demo scenes provided
  • Working with keyboard/mouse, gamepad and other input devices
  • Very fast publisher support
  • Still improving in features
  • Your feedback is highly appreciated


Coming soon.


Frequently Asked Questions

Why do I get so many errors?

The reason could be a wrong setup. Please set up everything according to the manual. Use the demo scene to verify that everything is set up correctly.

Why am I stuck in first person view? or
Why does the camera occasionally zoom into first person view when moving?

That depends on your RPG View Frustum settings:
  • If you've set the occultation handling to "Tag Dependent", you should check that your character object doesn't have one of the "Affecting Tags" assigned.
  • If you've set the occultation handling to "Always Zoom In", you should check that your character object doesn't have a layer assigned which is one of the "Occulting Layers".

Why is my character object always faded out?

Check if your character object has an occulting layer assigned. If so, you have to remove it from the "Occulting Layers" or pick another layer for your character.

Objects between camera and pivot don't fade out

It is very likely that mentioned objects have no transparent shader applied to their material and/or a layer assigned which isn't one of the "Occulting Layers".

Where does the animation stuff happen?

You can find the communication between script and Mecanim in the last lines of the RPG Motor's "StartMotor" method.

Can I use your character controller with moving (root motion) animations?

Yes, but you have to turn off the root motion and let the animations appear as in-place. Set the provided Animator's variable "Apply Root Motion" to false and you should have in-place animation. If it says "Handled by Script", find the script which implements the "OnAnimatorMove" function and comment it out. Then you are able to set the variable to false.

How can I use my own camera object and not the automatically generated one?

Just assign the camera game object you want to use to the RPGCamera script variable "UsedCamera".

Why is my character falling through moving objects?

Each moving object you want your character to walk on needs a kinematic rigidbody component attached.

Can I use Unity's ThirdPersonController standard asset together with your RPGCamera?

Yes, you can! You just have to follow 3 additional setup steps which you can find in the PDF "Using Unity's ThirdPersonController" in the Documentation folder.

Can I use a gamepad with your asset?

Yes, of course. You might have to adjust some settings in your project input manager to fit your needs.

Didn't find a solution to your problem? No worries! Feel free to send me an email to mail@johnstairs.com. Please don't use reviews in Unity's Asset Store to ask me questions as I only read them at odd times.