Here's the route script if you're too lazy to copy it yourself: [SerializeField] private Transform[] controlPoints; private Vector2 gizmosPosition; private void OnDrawGizmos() { for(float t = 0; t
For people who are trying to make this in 3D Route script:- [SerializeField] private Transform[] controlPoints; private Vector3 gizmosPosition; private void OnDrawGizmos() { for (float t = 0; t routes.Length - 1) { routeToGo = 0; } coroutineAllowed = true; }
@danieldarko2 жыл бұрын
life saver, ty
@kevkas2 жыл бұрын
I know you shared this like 10 months ago, but by end the of the script you change the speedModifier by 0.90f: speedModifier = speedModifier * 0.90f; why exactly are you changing that value there? I don't see that line in the video and I was wondering why you added it. Thanks a ton for the script btw.
@user-em9su3dd9y2 жыл бұрын
Dude, yes.
@abhinavsaha33422 жыл бұрын
@@danieldarko That's not a necessary step. I just did it cuz I was testing something
@omerbaylam2 жыл бұрын
sheeeesh, much thanks Abhinav:)
@paulhoover55115 жыл бұрын
As others have said, this is one of the best Unity tutorials I've come across. The presentation of the information is concise, understandable and to-the-point. The tutorial moves quickly, but covers everything that one needs in order to achieve the goal of the lesson. There's no time wasted with turning on the camera to begin recording, describing how to make a unity project, stopping to answer disruptive DMs, trying to remember what the person was say, etc.--all of the problems with the majority of video tutorials out there today. Alexander's knows his stuff, knows what he wants to impart and does so, eloquently.
@AlexanderZotov5 жыл бұрын
And this is one of the best comments I've read :-) Thank you very much!
@alexandershulzycki53764 жыл бұрын
For anyone who wants the object to rotate along the bezier curve (like a train), simply add "transform.LookAt(position);" before line 51 in the bezierfollow script. Because the calculated position will be applied on the next line, this rotates your object towards that next point, then applies the transform.
@bigjamar4 жыл бұрын
Muchas gracias..!!!, excelente..!!
@devanaboinasaivamshi44532 жыл бұрын
Yes you are right, You can also do like this " Vector3 dir = objectPosition - transform.position; dir.y = 0; // if you want in sepecific directions only or its optional transform.rotation = Quaternion.LookRotation(dir); transform.position = objectPosition; "
@axelderosa44552 жыл бұрын
que genio! muchas gracias
@GermanCoronel2 жыл бұрын
Worked like a charm for 3d movement, just changed "Vector2" for "Vector3"! Thank you so much!
@AlexanderZotov2 жыл бұрын
Happy to help!
@grandmasterskitz7486 жыл бұрын
Probably hands down the most useful tutorial I've seen in a really long time 😊 +1 like
@AlexanderZotov6 жыл бұрын
Thank you!
@devdharsan87133 жыл бұрын
Thanks For tuning in at Brackeys
@MERTYILMAZGAMES Жыл бұрын
I do not usually thank for tutorials but this was amazing
@AlexanderZotov Жыл бұрын
Thank you
@BeeBeeCoding5 жыл бұрын
MAN you are a coding god, i have been trying to learn bezier/spline curves for a while every tutorial is complicated as hell 33 Lines of code compared to my last bezier tutorial that was over 150 lines. thank you so much !!!
@AlexanderZotov5 жыл бұрын
Thanks for your feedback :-) Why 150 lines :-)
@BeeBeeCoding5 жыл бұрын
@@AlexanderZotov using the Unityeditor to make more complicated. How could i keep speed of the object the same on different routes with different sized curves i noticed on bigger curves the object i move is going faster than then on smaller ones any way to solve this? Thanks again
@AlexanderZotov5 жыл бұрын
Speed depends on t. Gotta play with it to make speed to be constant.
@BeeBeeCoding5 жыл бұрын
@@AlexanderZotov yeah i believe i have done it now thanks
@AlexanderZotov5 жыл бұрын
Cool!
@JimmyKadesch4 жыл бұрын
dude, this was amazing! I'm on a mission to implement some enemy/boss "swooping" motions at the player. This is the perfect foundation. Thank you!!
@AlexanderZotov4 жыл бұрын
Happy to help
@spe.z.artist4 жыл бұрын
this is amazing alex. your channel has once again saved the day. Every other tutorial on bezier curves is too complex, you simplified it! I used this to make 2d pendulum swing, and it could not be any better. you're the best,
@joolzc37764 жыл бұрын
One of the best Unity Tutorial Channels there is!!!! Should have a Billion Subs!!!!! Helped me many times this channel!!!!! No messing around and explains scripts in a good and clear way! Well done bro! keep up the good work!!!!!!!!!!!
@AlexanderZotov4 жыл бұрын
Thank you very much!
@TaliWuzzer3 жыл бұрын
It was surprisingly difficult to find a tutorial to move an icon along a simple Bezier curve path...this is exactly what I was looking for, and as far as I can tell, it is one of a kind. Thank you!
@AlexanderZotov3 жыл бұрын
Happy to help. Thank you!
@iansong16766 жыл бұрын
I found your channel today and I'm enjoying it so much!
@AlexanderZotov5 жыл бұрын
You are welcome!
@powersx25085 жыл бұрын
This tutorial is a best tutorial I have ever seen.
@AlexanderZotov5 жыл бұрын
Thank you very much!
@mmporg945 жыл бұрын
this is exactly what i was looking for! thank you for the tutorial! definitely gonna be messing around with it
@AlexanderZotov5 жыл бұрын
Super! You are welcome!
@alexandershulzycki53764 жыл бұрын
If anyone doesn't want the movement to freeze up when you switch to scene, simply swap out WaitForEndOfFrame() with WaitForFIxedUpdate() - this will also make sure that the speed is independent of the frame rate.
@LaraSilvestris2 жыл бұрын
Thank you so much for this tutorial! I'm really hesitant to use curves since I don't understand them yet but this was so easy to understand and modify to fit our game project! Now our player will bounce back smoothly from unwanted objects, just perfect!
@AlexanderZotov2 жыл бұрын
Happy to help :-)
@purpl3grape4 жыл бұрын
Thank you brother. I'm about to begin some Vehicle AI using bezier curves, this was an approach I was recommended.
@saumyasaurav1596 жыл бұрын
Bezier Curves are Awesome. Thanks man for this Tutorial.
@AlexanderZotov6 жыл бұрын
You are welcome!
@toniconge70032 жыл бұрын
Thank you very much! Wanted to do a shoot em up and give the enemies some smooth movement as they arrive onto screen and this is perfect for the job.
@SirGogan4 жыл бұрын
I notice the movement of the Cat on the Y is quicker than that of the X. I'm assuming that's because if you have a distance of 100, on the X that may equate to 10% of the overall screen width, where as 100 on the Y may equate to 30% of the overall screen height. Or to put it another way, the screen is wider than it is tall so the time it takes to travel the same distance is different from one axis to another. Does anyone have any suggestions on how to adjust the speed along the curves to account for this?
@dharmeshkumar27636 жыл бұрын
You are so smart.👍👌. This method can be used in various places such as enemy patrolling. Really helpful tutorial.
@AlexanderZotov6 жыл бұрын
Thank you!
@vmb3263 жыл бұрын
Thanks Alexander! Clear, concise and entertaining!
@rafaelskiarteportfolio109811 ай бұрын
Man, this is AMAZING! Congratulations and thank you!
@santiagogonzalezmontoya53703 жыл бұрын
All your tutorials are just amazing!. Keep going please!.
@RobertBojor5 жыл бұрын
You made my day man! :) Kudos for the tutorial.
@AlexanderZotov5 жыл бұрын
Thank you!
@probadaa578810 ай бұрын
Бро, спасибо тебе огромное, так долго пытался понять, что делать с моим простым перемещением, ибо не хотел переходить на движение с физикой и использованием AddForce. Про Bezier знал, но забыл, а на твоё видео наткнулся случайно, спасибо тебе большое, что напомнил!
@leonardopaciello59665 жыл бұрын
Nice tutorial, Bezier is pretty tricky to learn, but you made it simple, thanks
@AlexanderZotov5 жыл бұрын
Thanks for your feedback!
@games2play5025 жыл бұрын
Thankyou Alexander great tutorial, you are one of the best in game tutoring finaly i can know add platforms to my game :)
@AlexanderZotov5 жыл бұрын
You are welcome! Thanks for your feedback.
@johnberryconwayiii70713 жыл бұрын
Thank you so much! I've been trying to find a way to do tank tracks in my 2D Tank Game. Now the next step is figuring out how to duplicate a single track enough times to make a perfect loop. Also have to figure out how I'm going to pull off the interaction of the tracks and wheels.
@ACour0084 жыл бұрын
This is a really great video and explains Bezier curves super clearly. I am wondering in terms of 3D space, is applying the Gizmos script just a matter of using Vector3 types rather than Vector2? How does the gizmoPosition formula change if using it in 3D space?
@CORKALOT5 жыл бұрын
Incredible, Alexander! I'm new to coding but I'm going to go ahead with this as a foundation and try to get my GameObject to move in this manner upon trigger without the repetition! Wish me luck. :D
@AlexanderZotov5 жыл бұрын
Good luck :-)
@CORKALOT5 жыл бұрын
@@AlexanderZotov Did it! If anyone wants to know how, let me know.
@rachidhilmi8273 жыл бұрын
@@CORKALOT I know it's been a year, but I'm stuck on how to stop gameobject when reaches the last point.
@williamallen63823 жыл бұрын
cheers for the tutorial, I was able to use this for creating a rotating object with four platforms.
@SiegeMinion4 жыл бұрын
FINALLY a guide worth following. Thank you
@DoomTrooper5 жыл бұрын
You can also use transform.LookAt2D(p3, -90f); (The angle might differ based on the sprite) This will make the sprite look directly at the last waypoint. Really useful when you are spawning waves of enemies and want them to look at a specific direction with multiple routes.
@AlexanderZotov5 жыл бұрын
:-)
@jamieelliot68815 жыл бұрын
Helpful, do you do this in the update()? i'm having trouble trouble trying to figure out how to have my sprite follow this curve, the sprite has 5 body parts and need them to move so looks kinda like a snake/serpent in space game, out of ideas
@waqasgamedev4 жыл бұрын
Why to use Coroutine? If you are also wondering then this is what I understand.: First of all this is a very nice video explaining stuff even for beginners like me so thanks a lot to Alexander Zotov. I have subscribed to the channel as well. Then come to point. What I have understood (Please correct me fellows if I got it wrong) we need coroutine because other wise the while loop which is updating the position of the cat will run with in the single frame (and remember in 1 second there are 60 frames for 60 FPS rate) so the unity hangs and does not respond on such successive position updates with in a single frame. So we need to postpond this updation to the next frame so we are using "yield return" statement at end of each position updation at end of loop. However in my case yield return null worked because yield return new WaitForEndOfFrame caused unsteady updations instead of smooth.
@uvengine32193 жыл бұрын
Hi, how do I fill up the transform array through script if I want to make the cat into a prefab?, since it would lose references to the routes...
@9uile1253 жыл бұрын
Hi Alexander, Thank you for this tutorial ! I have a little problem at 09:00. When my cat reaches the p0 of Route02, there is a 'jitter' due to the fact that 'route01 p4' and 'route02 p0' are the same point. When you run step by step in unity editor, you can see clearly that behaviour. Do you have a tip to avoid this between routes ?
@Nosferotica3 жыл бұрын
Thank you so much my guy! Looking all over for something like this
@AlexanderZotov3 жыл бұрын
Happy to help
@gbhgvhgbh4 жыл бұрын
Great tutorial, how all tutorials should be clear and concise
@sife-i9n3 жыл бұрын
your tutorials are awesome u always give me exactly what i need thank u
@a.mused226 жыл бұрын
I didn't know that you could do that with Unity. Great!
@JozefKonradPlata5 жыл бұрын
Very good stuff. I like to see that Im not the only crazy person that likes to use while loops XD
@AlexanderZotov5 жыл бұрын
Yeah, "while"s can bring lots of headache :-)
@Gregasaurus6 жыл бұрын
awesome work. exactly what I was looking for. thanks Alexander
@AlexanderZotov6 жыл бұрын
You are welcome!
@andywildsnake77142 жыл бұрын
Excellent tutorial. Thanks Alexander!
@ZuloYT3 жыл бұрын
this video is pure gold my hero
@AlexanderZotov3 жыл бұрын
Thank you
@TheVeryMadMath4 жыл бұрын
Wow ! Thanks a lot ! You just saved my project right now...
@AlexanderZotov4 жыл бұрын
Happy to help!
@nv72872 жыл бұрын
lol " As we can see at this Wikipedia article a Bezier curve is a quite complicated shiiiiiii........ uh thing" perfect!
@PeterJohnson76 Жыл бұрын
Hi Alex, Brilliant tutorial.
@ElSonk4 жыл бұрын
You are a genius, thank you for this tutorial.
@AlexanderZotov4 жыл бұрын
Happy to help
@ClashWithHsen6 жыл бұрын
Thanks! just what I want to implement in my game
@AlexanderZotov5 жыл бұрын
You are welcome!
@darksidebidi2 жыл бұрын
if i wanted to do this, but for the camera, like the camera would follow that fixed line while following the player for example, the camera smoothly advances on that line as the player moves
@sixto20035 жыл бұрын
I like this video, if you follow step by step its easy and fun, and I spend time make something with angles and its more hard than this and low universal. Thanks
@AlexanderZotov5 жыл бұрын
Thanks for your feedback!
@TheParasone4 жыл бұрын
How about performance ? Does it take alot of cpu ? Would this method run on a mobile game with 10+ Obj to follow a path?
@federickpabalate36064 жыл бұрын
Hi, how can i implement dragging object through the bezier curve only. hope you help me thanks
@pravatpandey19375 жыл бұрын
Hey! Awesome Tutorial. Can anyone tell me why we used coroutine and waitForEndOfFrame ? What would happpen otherwise? Why do we generally use this technique?
@waqasgamedev4 жыл бұрын
Hi, What I have understood (Please correct me other fellows if I got it wrong) we need coroutine because other wise the while loop which is updating the position of the cat will run with in the single frame (and remember in 1 second there are 60 frames for 60 FPS rate) so the unity hangs and does not respond on such successive position updates with in a single frame. So we need to postpond this updation to the next frame so we are using "yield return" statement at end of each position updation at end of loop. However in my case yield return null worked because yield return new WaitForEndOfFrame caused unsteady updations instead of smooth.
@romanh.46894 жыл бұрын
Great! Exactly what I needed! Thanks.
@AlexanderZotov4 жыл бұрын
My pleasure
@PoRtCuLLiSuk2 жыл бұрын
Thank you, this tutorial is excellent!
@joharkhan67893 жыл бұрын
A small request which I am really in need. What if i want it to stop cat at one controlPoint for certain time and then move to next after some time. Appreciate your vidoes.
@TheTVShare3 жыл бұрын
Hi Sir, How can I correctly apply this to X, Z? So how can we apply it to the horizontal plane. Can you help me? Thank you. Have A Good Day.
@Santanu_Pal Жыл бұрын
Transform.posion is ok but any suggestion for transform.rotation if it would be a car in place of cat
@fcblp1 Жыл бұрын
is there anyway the object can go back the bezier curve while in the middle of it?
@skywoker1234566 жыл бұрын
Отличный урок,как и всегда!!
@AlexanderZotov6 жыл бұрын
Спасибо!
@zubairhussain-kl9pm Жыл бұрын
speed is not same throughout animation ...How can we do that?
@jugibur21173 жыл бұрын
Incredible stuff, thanks for sharing!
@FranzShester3 жыл бұрын
thanks for the tutorial, however, I'm having the issue that the object that follows the path stutters a bit... it's not much but it does... I've tried replacing transform. position for rigidbody.moveposition and yield return new WaitForEndOfFrame for WaitForFixedUpdate but nothing solves the issue.. any advice for that?
@haarissheikh31873 жыл бұрын
Hi Alexander, Great tutorial thank you. I wanted to ask if this works with adding more than one game object to it. For example, if you wanted a train with multiple components on it. Would 'Hinge joint' work on it? Thank you
@pawlik_3D3 жыл бұрын
Hi I have a question - is there a simple way to reduce the amount of points that make the curve?
@xssjgohanx92336 жыл бұрын
Hi, I would like to create a stickman that runs/walks (with the running or walking animation). My question is, since I saw your vids about 2d animation and left and right buttons, is there a way to use both of those tutorial in a project? Thanks
@kitthekat68443 жыл бұрын
Thanks for the great how-to!
@vizualwanderer3 жыл бұрын
Question: how do u find the midpoint, or is it as easy as adding the start point end point coordinate and dividing by 2?
@joshuaporzler32283 жыл бұрын
Great video! I have to create a car which follows a path in a 3d-scene. Your solution is only for a 2D-scene, right? My Bezier curve should be in the x-z-level, not in the x-y-level like in your video. How can I handle that?
@ShadowScorp993 жыл бұрын
If you're having trouble seeing the spheres generated by the Route script, change the code on line 19 shown in the video to DrawWireSphere instead of DrawSphere.
@DuongNguyen-hx1lo2 жыл бұрын
I changed to drawwiresphere but still cannot sê the sphere
@milantomcik36512 жыл бұрын
@@DuongNguyen-hx1lo increase radius of sphere, or enable gizmos tab in unity
@HF97Damnation5 жыл бұрын
Depending on the curve, the transform your moving might move at different speeds dependant on what point of the curve their on. Do you know of any way to make the transform maintain a consistent speed?
@AlexanderZotov5 жыл бұрын
Here is a comment in this thread right about it.
@paulhoover55115 жыл бұрын
The speed needs to be modified based on the distance traveled between the start and end points in a given curve. Speed becomes a multiplier, rather than a constant. The formula is then objectSpeed = speedMultiplier / distanceInCurve. It's a bit more complex, and outside of the scope of his tutorial, but that's the direction I've begun to pursue. Hopefully, that helps as a starting point... A simpler option is to make all of the curves approximately the same length.
@uroojfatima9169 Жыл бұрын
How can we make a line renderer on mouse position follow the path defined by bezian curve
@DoomTrooper6 жыл бұрын
0:28 Bezier Curve is a wide complicated Shi 🤣🤣🤣
@swordmaster30054 жыл бұрын
THIS WAS SO HELPFUL THANK YOU!
@sivabalan73533 жыл бұрын
Hi Alex, is it possible to drag that game object along the created path using touch input ? can you please guide me how to do that?
@AtomXploD4 жыл бұрын
Thank you for sharing, very helpful. I only have a doubt, when you create the childrens for route, then you modify the size of it to 4, I don't know why, but now it doesn't appear the size paramater in my inspector, you know what could be the reason? Thanks and Greetings.
@ethanfields87374 жыл бұрын
hey how do you adjust how many gizmos are on the line of the curve?
@erdemakar3 жыл бұрын
Hey I was looking for this but in a different view, can we make a 2d laser with bezier curve?
@gadgetboyplaysmc3 жыл бұрын
What font did you use for the number icons? I want them on my game :C
@Carlixyz5 жыл бұрын
VEry nice! Is it possible in an easy way to adjust the object rotation to aim always towards path?
@jhanolaer82862 жыл бұрын
Hi sir,How Do I Connect Two Splines Just Keep On Iterate From First Curve to the next Curve? is it correct statement? if 1stcurve = 1 then 1stcurve=0 object= 2ndcurve 2ndcurve= 2ndcurve+ speed?
@Shadepoopie4 жыл бұрын
is it possible to remove the gravity pull from the curve?
@poho39285 жыл бұрын
fantastically useful Alexander, thank you
@bagdadyassin19363 жыл бұрын
Tysm... I want to ask if you don't mind , how can I get a point on the specified root lets say half of it of 0.75 or so... again thank you already subscribed :)
@micol043 жыл бұрын
how does bezier script get a route array. works differently for me. there is no array
@bigneiltoo3 жыл бұрын
How would we place objects on Bezier surfaces with (u,v) versus t?
@angeloacosta51015 жыл бұрын
Hello! I have a question, how can I make the character move with keys instead of automatically? You are the best, thank's you a lot
@krenstx25024 жыл бұрын
You can actually, with the speed value as the output of your key. Probably the code will look like this, If(Input.GetKey(KeyCode.//insert your Key//){ SpeedValue += //the number// * Time.DeltaTime; } Sorry If i get this wrong
@minh_tri8247 Жыл бұрын
thank you so much. It very well 💯
@pavel94255 жыл бұрын
Thank you! Great tutorial.
@AlexanderZotov5 жыл бұрын
You are welcome!
@karenminasyan82095 жыл бұрын
Amazing tutorial, thank you 🤩🤩🤩
@AlexanderZotov5 жыл бұрын
You are welcome! Thanks for watching!
@Miakton4 жыл бұрын
Great video! Thank you! 7:05 What is the point in catPosition variable? We can calculate transform.position directly, aren't we? В чём смысл введения переменной catPosition? Мы же можем посчитать transform.position напрямую.
@jean-michel.houbre5 жыл бұрын
Very interesting ! I love it.
@AlexanderZotov5 жыл бұрын
👍
@mayankchaurasia60225 жыл бұрын
Hi Alexander It has been a great help by this tutorial and the way in which you had explained. Can i ask for one more help. Can you provide us a tutorial on live webcam chroma keying tutorial as what i had made is not up to the mark it should be.
@iansong16766 жыл бұрын
For somereason whenever I use unity remote 5 the graphic quality of the game and the performance(frame rate) goes down drastically. Is there any solution or does it get better when I make a build of the game?
@CouchFerretmakesGames6 жыл бұрын
Do you mean the quality on the phone? If yes, then it's normal. Basically, Unity streaming the game into your phone and your phone sends back the inputs. So it's pretty normal to have crappy quality and frame rate. If you build your game to your phone then it should be just as good as in the Unity Editor. :)
@7even4624 жыл бұрын
nice tutorial!
@quangthai77195 жыл бұрын
Thank Sir for your tutorial bout Bezier Curve, but where can I find your code ?