简体   繁体   中英

Unity 3D - Third Person character movement using rigidbody

I am new to Unity trying to make my first game (a Third Person Shooter). It's been now more than a week that I've tried again and again to get my character moving using a rigidbody component and NOT the Character Controller or the simple transform.Translate.

I have had about 30 web pages opened since a week browsing topics about it but I haven't found anything (almost made me feel like I am trying to do something impossible lol...).

So, I want to move my character just like in Splinter Cell Blacklist, and to have the camera with the crosshair controlled by the mouse (if I shoot, the character would rotate if not facing the target and then shoot).

For the movement, if it is not possible with the rigidbody then I'll use one of the others, it's just that I love the real feeling that the rigidbody has.

If there's even a tutorial that break it down to really understand, that would be great or just some code with comments (I have a C# background).

float moveSpeed = 6f;            // Player's speed when walking.
float rotationSpeed = 6f;
float jumpHeight = 10f;         // How high Player jumps

Vector3 moveDirection;

Rigidbody rb;

// Using the Awake function to set the references
void Awake()
{
    rb = GetComponent<Rigidbody>();
}

void FixedUpdate()
{
    Move();
}

void Move ()
{
    float hAxis = Input.GetAxis("Horizontal");
    float vAxis = Input.GetAxis("Vertical");

    Vector3 movement = new Vector3(hAxis, 0f, vAxis);
    rb.position += movement * moveSpeed * Time.deltaTime;
}

My idea. If you want the real feel, you need the rigidbody.addforce to your character at the proper part of the character body. Not the rigidbody.position .

Hope help.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM