• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Arnold // Golden Donkey Productions
      Hi, I've been working on this issue for a while and haven't yet found an answer.
      Does anyone know the best way to convert unity's LAT & LONG into a vector 3 position that I could use in a virtual world (if it's even possible). 
      Thankyou in advance
    • By wobbegong_
      I am taking an absolute beginner's game development course and we have just finished game jams in small groups. Our current assignment is to get feedback from people working in any aspect of game development. I would very much appreciate any feedback! The game is up on itchi.io (sound warning) https://wobbegong.itch.io/zombie-shooter It's essentially a very basic PvE.
      I also have some things I'm wondering about, but you don't necessarily have to answer these. 
      1. Do you have any tips on working with physics? My group wrestled a bit with Rigidbody physics not totally working the way we wanted to -- jumping ended up kind of floaty and inclines seem to mess up movement. Alternatively... how can I build terrains with depth that won't result in wonky physics?
      2. How can I keep up the level of challenge in an interesting way as the player progresses through the waves?
      3. What are some of your personal guidelines for creating title screens?
      Thank you very much in advance!
    • By ethancodes
      I'm having a weird issue with detecting a collision. I've tried everything I could find online but nothing seems to work. I have a brick object. It has a 2D Collider attached and I have also attached a 2D Rigidbody on it. I also have an EndScreen 2D Collider. The EndScreen 2D collider is tagged with "EndScreen". I am trying to detect when a brick collides with the end screen collider and simply print "game over" in the console. 
      This is my current code for this part of the program, it is attached to the bricks:
      void OnCollisionEnter (Collision2D collision) { if (collision.gameObject.tag == "EndScreen") { Debug.Log("Game over"); } } Several things have happened depending on the set up. If I have the rigidbody 2D set as static, my ball object can still collide with the bricks, but I get no Log message. If I set it to Kinematic or Dynamic, I get absolutely no interaction between the ball and the bricks, and nothing when the bricks pass through the collider. I have tried to set the collider to a trigger and use OnTriggerEnter2D, no change. I have tried to put the rigidbody on the EndScreen object and tried to set it's body type to all 3 settings, no change. The only thing I can think of that I have not done is put the script on the EndScreen object and switch the tag to the bricks. The reason I have not done this is because I will have several types of bricks, some of which will have different tags. 
      Please tell me somebody can see what I'm doing wrong here, because I'm losing my mind over something I feel should be ridiculously simple. Thanks.
    • By Sandman Academy
      Downloadable at:
    • By Sandman Academy
      Downloadable at:
  • Advertisement
  • Advertisement
Sign in to follow this  

Unity 3rd Person Character Controller (horizontal axis: left, right)

This topic is 891 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts



I have some issues with writing a character controller for a 3D game like Tomb Rider or Ninja Gaiden Sigma.

It is no matter for what language or system, my question is in general: what kind of motion animations do you

actually need?


The whole post is about camera based / relative movement. The camera might not be allways 100%

behind the player it might follow delayed like a spring or being fixed depending on the location.


The main problem is what should happen when the player engages left or right on the analog stick.


Some games start rotate on spot by 90 degrees. Unity interpolates this even further, if you are applying

forward force (vertical analog axis) and applying side force (horizontal analog axis) the animator component

will blend the turn left or right motion with the forward motion. Might this be a problem?


Why I am asking that: what about if you press 100% left on the analog stick, will the motion always be some

kind of ellipsoid or circular because of the blend? Theoretically, if you use forward force [0..1] where 0 is stand

and 1 is running and also the side force or axis angle [-1..1] where -1 is left and 1 is right it is possible, that

when you turn left once the character is facing left the 100% horizontal position of the left axis translates to

100% forward force which means running without rotation?


If you stick with that, why are there then: normal right rotation move and sharp right rotation moves?


This interpolation thing drives me crazy. The next thing is for example, what it the player just slightly presses

the horizontal axis the movement is very short and very jerky. How to avoid that?


And what about the player is facing straight forward and you press straight down the vertical analog axis.

The player should perform a 180 degree rotation like in Ninja Gaiden.


Has anyone some good resources? I have tried almost every controller on the Unity Asset store and sooner

or later you will run into a situation where the motion is jerky. Even the standard unity 3rd person controller

gets easily messed up when you try to perform either very minimal rotations or a 180 degree turn.


I also think, that modern 3D games like Tomb Rider, Ninja Gaiden or Devil May Cry don't always follow the

character instead it looks like every scene has some "hotspots" for the camera and when you reach a segment

the camera doesn't follow the player via translation or zoom instead it only rotates in order to keep the player

in center of the screen.


Feel free to post.


Thank you in advance!

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement