First Person Movement Unity 2022
Вставка
- Опубліковано 4 жов 2024
- Todays video is all about making a fun to use and highly tweakable 3D movement system in unity.
First Person Movement Unity 2022
Code:
pastebin.com/d...
Remember to subscribe and hit that bell to always stay notified.
Go check out my other videos:
/ bloxydev
comment below what you though of the video and what I can improve on and don't be afraid to give me suggestions for future videos!
Can i use version 2020.3.24f1
i loved the video so much thx bro this is working way to good
It's a great video. I'd like to see a tutorial like this with the new input system
Pls make a video on creating an enemy AI I cant really figure it out!
btw this was the most detailed video Ive seen for my new project- thanks :)
Why is it always the small youtubers who make better content than the big ones? Good job, this helped a lot.
FOR THE PEOPLE WHOS JUMP FUNCTION WONT WORK, YOU SELECT BOTH THE NEW GROUND LAYER YOU MADE AND THE DEFAULT LAYER AS WELL, good luck on your game.
what
Thankyou i was wondering why that didnt work.😁
thank you so much
Thanks bro you save me
Goated bro
I think this is the best tutorial I’ve found so far on player controls
Ive been trying to do this for HOURS looking at way to complicated "beginner" tutorials. This is an amazing tutorial and i will be recommending it to all of my coding friends. W
For all of those who don't know, you're not supposed to select both Default and Ground in the Player script, you're supposed to designate the objects on the map that are the floor and assign them to the Ground layer.
Here are a couple fixes for the jumping and other issues:
1. Line 73 ; since the product of gravity (negative), and 2 (positive) is a positive integer we must subtract it from velocityY.
My personal fix was : " velocityY -= gravity * -2.0f * Time.deltaTime "
2. velocity (Vector3) and velocityY are basically the same so you could change velocityY to velocity.y; and the rest of the script respectively.
@@MonstrumReborn Inside the Player, go into "Movement (script)", on the Ground section you select the "ground" layer and the "Default" layer
How about [serializeField] issue? Can you help me?
Holy smokes thats better, mine before was snapping when I fell of something. The only problem I'm getting is now I'm floating a lil' bit but I think I know how to fix that
also change isGrounded! to !isGrounded. to fix jumping on slopes
*FOR THE PEOPLE WHOS JUMP PORTION DOESNT WORK READ THIS MESSAGE*
Inside the Player, go into "Movement", on the Ground you select the "ground" layer and the "Default" layer
I hope this helps
YOOOO MAN THX SOO MUCH
ty sooo mutch broo i was legit getting concernd
You're the best
@@Chrono-Science I know 😎
Thank you so much!!!!!
I'm brand new and I'm setting up my first game for my dissertation, and you were such a lifesaver. Thanks for all the amazing work you do!
bro you video is PERFECT! i'm begginer and i been working on it for 4h with alot of bugs etc. searching through alot of tutorial but none worked, and i found your video, YOU SAVED MY LIFE MAN, keep it up!!!
this is amazing. however i noticed movement is a bit buggy while on slopes, specifically the gravity, when i fall from a slope it just slams me into the ground immediately
Thank you soooo much!!! This helped a lot. Unity's FPS setup had my character rotation side to side all shakey. Ur tutorial sorted it out one time!!!
I have come across many player controller tutorials in my time and this was the only one that worked. So thank you!
One last chicken very crispy
First actually GOOD tutorial I found. Amazing work.
Been stumbling through a lot of character controller tutorials. There was always something off (like being catapulted into space when jumping on ramps and edges).
Can't wait to try this one out! Keep up the good work!
Well I'm glad I could help!
i was searching videos of a lot of people for days and any video help me, but this video, help me a lot and finally i can make the first person camera, thank you a lot
bro is underrated , nice video
Works in 2023! Very helpful video much appreciated
this was overrall the best tutorial on character controller movement, Thank you so much!
I have watched like 4 diffrient movement tutorials, some didnt even work but this was the best.
I have encountered a Glitch I can jump whilst in air causing to fly as long as you keep clicking Space if you keep clicking it then you stop for even a second you will have to wait till you touch the floor again.
any idea how to fix?
@@beau_mom3079 use this code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
[SerializeField] Transform playerCamera;
[SerializeField][Range(0.0f, 0.5f)] float mouseSmoothTime = 0.03f;
[SerializeField] bool cursorLock = true;
[SerializeField] float mouseSensitivity = 3.5f;
[SerializeField] float Speed = 6.0f;
[SerializeField][Range(0.0f, 0.5f)] float moveSmoothTime = 0.3f;
[SerializeField] float gravity = -30f;
[SerializeField] Transform groundCheck;
[SerializeField] LayerMask ground;
public float jumpHeight = 6f;
float velocityY;
bool isGrounded;
float cameraCap;
Vector2 currentMouseDelta;
Vector2 currentMouseDeltaVelocity;
CharacterController controller;
Vector2 currentDir;
Vector2 currentDirVelocity;
Vector3 velocity;
void Start()
{
controller = GetComponent();
if (cursorLock)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = true;
}
}
void Update()
{
UpdateMouse();
UpdateMove();
}
void UpdateMouse()
{
Vector2 targetMouseDelta = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
currentMouseDelta = Vector2.SmoothDamp(currentMouseDelta, targetMouseDelta, ref currentMouseDeltaVelocity, mouseSmoothTime);
cameraCap -= currentMouseDelta.y * mouseSensitivity;
cameraCap = Mathf.Clamp(cameraCap, -90.0f, 90.0f);
playerCamera.localEulerAngles = Vector3.right * cameraCap;
transform.Rotate(Vector3.up * currentMouseDelta.x * mouseSensitivity);
}
void UpdateMove()
{
isGrounded = Physics.CheckSphere(groundCheck.position, 0.2f, ground);
Vector2 targetDir = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
targetDir.Normalize();
currentDir = Vector2.SmoothDamp(currentDir, targetDir, ref currentDirVelocity, moveSmoothTime);
velocityY += gravity * 2f * Time.deltaTime;
Vector3 velocity = (transform.forward * currentDir.y + transform.right * currentDir.x) * Speed + Vector3.up * velocityY;
controller.Move(velocity * Time.deltaTime);
if (isGrounded && Input.GetButtonDown("Jump"))
{
velocityY = Mathf.Sqrt(jumpHeight * -2f * gravity);
}
if(!isGrounded && controller.velocity.y < -1f)
{
velocityY = -8f;
}
}
}
it only fixes the bit where if you stop jumping it wont let you jump again till you touch the ground
Only one thats worked for me in like 5 tries, LOVE YOU SOOO MUUUUCH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! THANKYOUUUU
TYSM for your help :) and I do a platform game but when I fall without jumping, my character falls very quickly to the ground but if I fall while jumping, it falls normally
im in a game jame i wasted a day on a bad idea i had to get something working and thos saved me you and amazing :)
Worked amazingly well for the most part, I just cannot jump. It would be very helpful if you could explain why or if the is a specific key. Thanks! Great tutorial :)
Did you remember to set a ground layer?
@@BloxyDev i did still dosent work
@@xotixvr3705 i just figured it out and you need your ground to be set to default and the new layer you add( ground) hope this helped
@@messyvr1875 im confused can you explain better what do you mean your ground to be set to default and the new layer you add( ground) i didn't understand i would be lots of help you could explain
Nothing happened
Thank you so much, I had so much trouble but this video literally solved all my problems, subed and liked.
That you so much man I been trying to do it for a while until I found this wonderful video-Thanks so much 🎉🎉🎉
This tutorial helped ALOT. Thanks for helping!
i have problem with the jump. if you press the jump button many times it will jumping for eternity. di someone know how to fix this?
This tutorial was amazing, thank you so much!!!!
dude I havent even opened Unity yet and its finally the same version LETS GO!!!!!!!!!!!!!!!
It didnt work for me so i fixed it
>>
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
[SerializeField] Transform playerCamera;
[SerializeField][Range(0.0f, 0.5f)] float mouseSmoothTime = 0.03f;
[SerializeField] bool cursorLock = true;
[SerializeField] float mouseSensitivity = 3.5f;
[SerializeField] float Speed = 6.0f;
[SerializeField][Range(0.0f, 0.5f)] float moveSmoothTime = 0.3f;
[SerializeField] float gravity = -30f;
[SerializeField] Transform groundCheck;
[SerializeField] LayerMask ground;
public float jumpHeight = 6f;
float velocityY;
bool isGrounded;
float cameraCap;
Vector2 currentMouseDelta;
Vector2 currentMouseDeltaVelocity;
CharacterController controller;
Vector2 currentDir;
Vector2 currentDirVelocity;
Vector3 velocity;
void Start()
{
controller = GetComponent();
if (cursorLock)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = true;
}
}
void Update()
{
UpdateMouse();
UpdateMove();
}
void UpdateMouse()
{
Vector2 targetMouseDelta = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
currentMouseDelta = Vector2.SmoothDamp(currentMouseDelta, targetMouseDelta, ref currentMouseDeltaVelocity, mouseSmoothTime);
cameraCap -= currentMouseDelta.y * mouseSensitivity;
cameraCap = Mathf.Clamp(cameraCap, -90.0f, 90.0f);
playerCamera.localEulerAngles = Vector3.right * cameraCap;
transform.Rotate(Vector3.up * currentMouseDelta.x * mouseSensitivity);
}
void UpdateMove()
{
isGrounded = Physics.CheckSphere(groundCheck.position, 0.2f, ground);
Vector2 targetDir = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
targetDir.Normalize();
currentDir = Vector2.SmoothDamp(currentDir, targetDir, ref currentDirVelocity, moveSmoothTime);
velocityY += gravity * 2f * Time.deltaTime;
Vector3 velocity = (transform.forward * currentDir.y + transform.right * currentDir.x) * Speed + Vector3.up * velocityY;
controller.Move(velocity * Time.deltaTime);
if (isGrounded && Input.GetButtonDown("Jump"))
{
velocityY = Mathf.Sqrt(jumpHeight * -2f * gravity);
}
if(!isGrounded && controller.velocity.y < -1f)
{
velocityY = -8f;
}
}
}
It does a several hurts to my game. Thanks :)
Bloxy Dev could I have some help I am trying to modify your code for a controller It already works with moving but I want to be able to look with right joy stick and jump with the east button also could it be modified to crouch with left joystick click down please help if you can Aovri
bruh mine doesnt jump and slides a bit when he stops walkingn hoiw do i stop this?!
I've been looking for a 1st person character controller for ages and yours is by far the best one I have come across in terms of ease of use! Thanks a ton :D
Also more tutorials coming hopefully?!
Thx I have been looking for a tutorial thats works for the walking script and the camera You earned a subscriber from me. Im suprised that it only got 670 when it shued of hade like 3-4 thousand Likes it was a Great tutorial. :)
when i press play than it just says all complier errors have to be fixed. what do i do to fix that?
THANK YOU SO MUCH OMG I FINALY AFTER SO MANY TRYS YOU HELPED ME AND GOT IT TO WORK YESS😁😁😀😀
when i drag the movement script, the movement script wont show up
Short and sweet, thank you!
what button is jump for some reason space is not working for me
bro you are the best you are the only one that works
hippity hoppity your code is now my property
could you do a video on how to add guns and reloading i'm making a game and it would help a bunch
Hey, just started with Unity and your video helpedme out alot so far :D
I have one problem thou. For some reason I can only look up and down, but cant move the camera left or right, even thou I followed your setup to a t.
Any Idea how I might be able to fix this ?
ok, great video but the jumping does not work for me and i was just wondering if you might have a fix for this?
edit: i fixed it 👍👍
another person say that : " Inside the Player, go into "Movement", on the Ground you select the "ground" layer and the "Default" layer "
Great great video, my dude
Hope you enjoyed!
Thank you so much, you helped alot!
wow amazing so easy and I will make sure to remember this
U are god. Finally someone with working script + i can turn off the smooth time
I think this idea would work great, if the variables would run. "The variable playerCamera of Movement has not been assigned.
Thank you so much , it worked!!!
Why are you not famous?
edit: Thx bro it worked
help noob here . I already removed the errors but it seems there is no collision in my ground I always fall whenver I run
I cant jump ive watched a few other videos and it says you have to have a ridged body componet to the capsule but once i do that it just starts spinning like crazy i need help
Thanks boss! 🦍
When I put this in, the camera turns completely to the right when I press play. I cannot figure out why.
I found a a problems with the code. First, you can jump more than once through the air.
not if you implemented the ground check correctly, I suggest you re-watch part of the video to see the ground check
Hey, i have a problem, when I run the game, it makes me fall into the void, can someone please help me, thanks
Make a platform to stand on
my jump doesnt work for some reason
thank you so much
thx man im ten but i know unity
i ran into some issues so like when i move my mouse to turn it just turns everywhere and also the movement only lets me go in the sides
Nothing worked, I did what u said and it didnt work.
ty so much for this. because im making a backrooms game
best movment script video ever
Broo when I put the script in to my capsule the script doesn't do anything man it's just a name o f the script that's all I cant do anything with this I can't move pls someone help❤❤
can you make a tutorial for a wall jump
All of the tutorials on 1st person movement have not worked and this dont work pls help
I keep teleporting through the ground when i got near some of the cubes i placed
When i jump my camera just falls through the ground
I feel stupid. I'm just trying to make my first game and it doesn't give me the options for jump height or speed or any of that stuff, if anyone else got this problem or they know what's happening pls help me.
my guy falls over for every movment
I can only turn my camera on a x-axis/horizontal direction, any fixes?
BEAN, i miss danny
i keep falling on the terrain when i play can someone help
Do you have any Idea how to make it so you can jump while running on a downslope ?
hello im new to making games so i watched video and goin to be honested coppyed code and for me it not showin all the mouse sens and other stuff is it what i do is it cause code or do i need to save and exit it lol i dont know
press ctrl+s i had same thing.
At your code redactor
Hello can sombady help me. You have open script menu where did you doing jump height ando more. And I cant open it can sombady help please.
You need to put the script in the player for it to work.
i added a grapple gun and when i shift it messes it up so how do i turn shift off?
You didn't make a character controller you just used the one provided by default
Where do I write the code, I can’t open the script Bcus it asks to open notepad or unity editor
Running and sliding please
Will you ever make a sprinting tutorial using this script?
error CS0103: The name 'Nameof' does not exist in the current context
I tried 5 tutorials on how to do this and even this one Didnt work do you know why and can u help me ?
The camera works but i cant actually move am i missing something?
1:05 tysm
The Jump part for me inst working
make sure to have the ground layer to ground and default
@@moonsnowtv429 ?
@@goofysongs1722 like i said, use default as ground layer, but also use your platform as ground layer
@@moonsnowtv429 how
@@Musabuluut2013 I have no idea anymore, I went to Unreal Engine because that is way new user friendly
jump dont work
The player falls through the ground what should I do
Add a rigidbody to the player
wheres the ground check?
I need help when i walk it doesn't let me turn how do i fix that.
same
whos this absolute cutieeeee
jump dont work i add ground to ground layer and to script and still
im getting compiler errror and its not letting me put in my player i copy pasted from one of thing in the comments and for everyone else it worked
found the problem used chat gpt to find out
In the line if (isGrounded! && controller.velocity.y < -1f), there is an exclamation mark (!) after isGrounded, which is causing a syntax error. You need to remove the exclamation mark to fix the error. The corrected line should be: if (isGrounded && controller.velocity.y < -1f).
The code references a variable isGrounded! in the line if (isGrounded! && controller.velocity.y < -1f), which doesn't exist. This is likely a typo. You can remove the ! to fix the error. The corrected line should be: if (isGrounded && controller.velocity.y < -1f)
also had another spare code with different movement method that caused a second error try to fix these to see if it works lol
@@drakefire98 you want the (!) just on the other side of the variable
Quick question, how can i add sprint?