Unity Tutorial How To Make Game Object Or Character Move Along Bezier Curve With Simple C# Script

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 290

  • @niblet8308
    @niblet8308 4 роки тому +181

    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

    • @niblet8308
      @niblet8308 4 роки тому +76

      and here's the follow script:
      [SerializeField]
      private Transform[] routes;
      private int routeToGo;
      private float tParam;
      private Vector2 objectPosition;
      private float speedModifier;
      private bool coroutineAllowed;
      // Start is called before the first frame update
      void Start()
      {
      routeToGo = 0;
      tParam = 0f;
      speedModifier = 0.5f;
      coroutineAllowed = true;
      }
      // Update is called once per frame
      void Update()
      {
      if (coroutineAllowed)
      {
      StartCoroutine(GoByTheRoute(routeToGo));
      }
      }
      private IEnumerator GoByTheRoute(int routeNum)
      {
      coroutineAllowed = false;
      Vector2 p0 = routes[routeNum].GetChild(0).position;
      Vector2 p1 = routes[routeNum].GetChild(1).position;
      Vector2 p2 = routes[routeNum].GetChild(2).position;
      Vector2 p3 = routes[routeNum].GetChild(3).position;
      while(tParam < 1)
      {
      tParam += Time.deltaTime * speedModifier;
      objectPosition = Mathf.Pow(1 - tParam, 3) * p0 + 3 * Mathf.Pow(1 - tParam, 2) * tParam * p1 + 3 * (1 - tParam) * Mathf.Pow(tParam, 2) * p2 + Mathf.Pow(tParam, 3) * p3;
      transform.position = objectPosition;
      yield return new WaitForEndOfFrame();
      }
      tParam = 0f;
      routeToGo += 1;
      if(routeToGo > routes.Length - 1)
      {
      routeToGo = 0;
      }
      coroutineAllowed = true;
      }

    • @moeab834
      @moeab834 3 роки тому +9

      @@niblet8308 you da real MVP

    • @kavyaagrawal2013
      @kavyaagrawal2013 3 роки тому +4

      Thank you, god.

    • @coriandrew
      @coriandrew 3 роки тому

      Thank you so much! 💎

    • @AlexanderZotov
      @AlexanderZotov  3 роки тому +4

      My pleasure

  • @abhinavsaha3342
    @abhinavsaha3342 3 роки тому +58

    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;
    }

    • @danieldarko
      @danieldarko 2 роки тому +2

      life saver, ty

    • @kevkas
      @kevkas 2 роки тому

      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-em9su3dd9y
      @user-em9su3dd9y 2 роки тому

      Dude, yes.

    • @abhinavsaha3342
      @abhinavsaha3342 2 роки тому

      @@danieldarko
      That's not a necessary step. I just did it cuz I was testing something

    • @omerbaylam
      @omerbaylam 2 роки тому

      sheeeesh, much thanks Abhinav:)

  • @paulhoover5511
    @paulhoover5511 5 років тому +64

    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.

    • @AlexanderZotov
      @AlexanderZotov  5 років тому +10

      And this is one of the best comments I've read :-) Thank you very much!

  • @alexandershulzycki5376
    @alexandershulzycki5376 4 роки тому +42

    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.

    • @bigjamar
      @bigjamar 4 роки тому

      Muchas gracias..!!!, excelente..!!

    • @devanaboinasaivamshi4453
      @devanaboinasaivamshi4453 2 роки тому +1

      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; "

    • @axelderosa4455
      @axelderosa4455 2 роки тому

      que genio! muchas gracias

  • @GermanCoronel
    @GermanCoronel 2 роки тому +2

    Worked like a charm for 3d movement, just changed "Vector2" for "Vector3"! Thank you so much!

  • @BeeBeeCoding
    @BeeBeeCoding 5 років тому +2

    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 !!!

    • @AlexanderZotov
      @AlexanderZotov  5 років тому

      Thanks for your feedback :-) Why 150 lines :-)

    • @BeeBeeCoding
      @BeeBeeCoding 5 років тому

      @@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

    • @AlexanderZotov
      @AlexanderZotov  5 років тому

      Speed depends on t. Gotta play with it to make speed to be constant.

    • @BeeBeeCoding
      @BeeBeeCoding 5 років тому

      ​@@AlexanderZotov yeah i believe i have done it now thanks

    • @AlexanderZotov
      @AlexanderZotov  5 років тому

      Cool!

  • @MERTYILMAZGAMES
    @MERTYILMAZGAMES Рік тому +2

    I do not usually thank for tutorials but this was amazing

  • @grandmasterskitz748
    @grandmasterskitz748 6 років тому +25

    Probably hands down the most useful tutorial I've seen in a really long time 😊
    +1 like

  • @TaliWuzzer
    @TaliWuzzer 3 роки тому

    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!

  • @JimmyKadesch
    @JimmyKadesch 4 роки тому +2

    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!!

  • @joolzc3776
    @joolzc3776 4 роки тому

    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!!!!!!!!!!!

  • @alexandershulzycki5376
    @alexandershulzycki5376 4 роки тому +4

    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.

  • @spe.z.artist
    @spe.z.artist 4 роки тому +1

    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,

  • @LaraSilvestris
    @LaraSilvestris 2 роки тому

    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!

  • @toniconge7003
    @toniconge7003 2 роки тому

    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.

  • @powersx2508
    @powersx2508 5 років тому +4

    This tutorial is a best tutorial I have ever seen.

  • @waqasgamedev
    @waqasgamedev 4 роки тому

    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.

  • @purpl3grape
    @purpl3grape 4 роки тому +1

    Thank you brother. I'm about to begin some Vehicle AI using bezier curves, this was an approach I was recommended.

  • @probadaa5788
    @probadaa5788 11 місяців тому

    Бро, спасибо тебе огромное, так долго пытался понять, что делать с моим простым перемещением, ибо не хотел переходить на движение с физикой и использованием AddForce. Про Bezier знал, но забыл, а на твоё видео наткнулся случайно, спасибо тебе большое, что напомнил!

  • @saumyasaurav159
    @saumyasaurav159 6 років тому +2

    Bezier Curves are Awesome. Thanks man for this Tutorial.

  • @DoomTrooper
    @DoomTrooper 5 років тому +5

    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.

    • @AlexanderZotov
      @AlexanderZotov  5 років тому +1

      :-)

    • @jamieelliot6881
      @jamieelliot6881 5 років тому

      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

  • @rafaelskiarteportfolio1098
    @rafaelskiarteportfolio1098 Рік тому

    Man, this is AMAZING! Congratulations and thank you!

  • @dharmeshkumar2763
    @dharmeshkumar2763 6 років тому +2

    You are so smart.👍👌. This method can be used in various places such as enemy patrolling. Really helpful tutorial.

  • @johnberryconwayiii7071
    @johnberryconwayiii7071 3 роки тому

    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.

  • @SirGogan
    @SirGogan 4 роки тому +8

    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?

  • @iansong1676
    @iansong1676 6 років тому +2

    I found your channel today and I'm enjoying it so much!

  • @vmb326
    @vmb326 3 роки тому

    Thanks Alexander! Clear, concise and entertaining!

  • @mmporg94
    @mmporg94 5 років тому +3

    this is exactly what i was looking for! thank you for the tutorial! definitely gonna be messing around with it

  • @leonardopaciello5966
    @leonardopaciello5966 6 років тому +1

    Nice tutorial, Bezier is pretty tricky to learn, but you made it simple, thanks

  • @gbhgvhgbh
    @gbhgvhgbh 4 роки тому

    Great tutorial, how all tutorials should be clear and concise

  • @nv7287
    @nv7287 2 роки тому

    lol " As we can see at this Wikipedia article a Bezier curve is a quite complicated shiiiiiii........ uh thing"
    perfect!

  • @SiegeMinion
    @SiegeMinion 4 роки тому

    FINALLY a guide worth following.
    Thank you

  • @williamallen6382
    @williamallen6382 3 роки тому

    cheers for the tutorial, I was able to use this for creating a rotating object with four platforms.

  • @ShadowScorp99
    @ShadowScorp99 3 роки тому +2

    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-hx1lo
      @DuongNguyen-hx1lo 2 роки тому

      I changed to drawwiresphere but still cannot sê the sphere

    • @milantomcik3651
      @milantomcik3651 2 роки тому

      @@DuongNguyen-hx1lo increase radius of sphere, or enable gizmos tab in unity

  • @santiagogonzalezmontoya5370
    @santiagogonzalezmontoya5370 3 роки тому

    All your tutorials are just amazing!. Keep going please!.

  • @andywildsnake7714
    @andywildsnake7714 2 роки тому

    Excellent tutorial. Thanks Alexander!

  • @darksidebidi
    @darksidebidi 2 роки тому

    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

  • @PeterJohnson76
    @PeterJohnson76 Рік тому

    Hi Alex, Brilliant tutorial.

  • @TheVeryMadMath
    @TheVeryMadMath 4 роки тому

    Wow ! Thanks a lot ! You just saved my project right now...

  • @RobertBojor
    @RobertBojor 5 років тому +1

    You made my day man! :) Kudos for the tutorial.

  • @games2play502
    @games2play502 5 років тому +2

    Thankyou Alexander great tutorial, you are one of the best in game tutoring finaly i can know add platforms to my game :)

    • @AlexanderZotov
      @AlexanderZotov  5 років тому

      You are welcome! Thanks for your feedback.

  • @JozefKonradPlata
    @JozefKonradPlata 5 років тому

    Very good stuff. I like to see that Im not the only crazy person that likes to use while loops XD

    • @AlexanderZotov
      @AlexanderZotov  5 років тому

      Yeah, "while"s can bring lots of headache :-)

  • @a.mused22
    @a.mused22 6 років тому

    I didn't know that you could do that with Unity. Great!

  • @Nosferotica
    @Nosferotica 3 роки тому

    Thank you so much my guy! Looking all over for something like this

  • @sife-i9n
    @sife-i9n 3 роки тому

    your tutorials are awesome u always give me exactly what i need thank u

  • @PoRtCuLLiSuk
    @PoRtCuLLiSuk 2 роки тому

    Thank you, this tutorial is excellent!

  • @ElSonk
    @ElSonk 4 роки тому +1

    You are a genius, thank you for this tutorial.

  • @sixto2003
    @sixto2003 5 років тому +1

    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

  • @ZuloYT
    @ZuloYT 4 роки тому

    this video is pure gold my hero

  • @CORKALOT
    @CORKALOT 5 років тому

    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

    • @AlexanderZotov
      @AlexanderZotov  5 років тому +1

      Good luck :-)

    • @CORKALOT
      @CORKALOT 5 років тому

      @@AlexanderZotov Did it!
      If anyone wants to know how, let me know.

    • @rachidhilmi827
      @rachidhilmi827 3 роки тому

      @@CORKALOT I know it's been a year, but I'm stuck on how to stop gameobject when reaches the last point.

  • @ACour008
    @ACour008 4 роки тому +2

    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?

  • @ClashWithHsen
    @ClashWithHsen 6 років тому +3

    Thanks! just what I want to implement in my game

  • @uvengine3219
    @uvengine3219 3 роки тому +1

    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...

  • @skywoker123456
    @skywoker123456 6 років тому +2

    Отличный урок,как и всегда!!

  • @jugibur2117
    @jugibur2117 3 роки тому

    Incredible stuff, thanks for sharing!

  • @Gregasaurus
    @Gregasaurus 6 років тому +1

    awesome work. exactly what I was looking for. thanks Alexander

  • @kitthekat6844
    @kitthekat6844 4 роки тому

    Thanks for the great how-to!

  • @sam_smax
    @sam_smax 4 роки тому +1

    if you want here is a piece of code in order to make the cat rotate depending on where it's going
    the variable _angle is a private float
    by the way thank you a lot for the tutorial
    Vector3 relative = transform.InverseTransformPoint(_catPosition);
    _angle = Mathf.Atan2(relative.x, relative.y)*Mathf.Rad2Deg;
    transform.Rotate(0,0, -_angle);
    transform.position = _catPosition;

    • @Reita69
      @Reita69 4 роки тому +1

      Man, i love you for that

  • @romanh.4689
    @romanh.4689 4 роки тому

    Great! Exactly what I needed! Thanks.

  • @DoomTrooper
    @DoomTrooper 6 років тому +10

    0:28 Bezier Curve is a wide complicated Shi 🤣🤣🤣

  • @Ashok2048
    @Ashok2048 3 роки тому

    I have benn looking for this video for a long time, since I did not search for bezier curve.

  • @7even462
    @7even462 4 роки тому +1

    nice tutorial!

  • @dizignit1983
    @dizignit1983 4 роки тому

    Great video!! I am pretty new to Unity. This has really opened up my eyes to the potential of Unity. Thank you!

  • @poho3928
    @poho3928 5 років тому

    fantastically useful Alexander, thank you

  • @joharkhan6789
    @joharkhan6789 3 роки тому

    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.

  • @HomeAwesomation
    @HomeAwesomation 4 роки тому

    Switch all the vector2's to vector3's if you want it to follow a curve in 3d space

  • @minh_tri8247
    @minh_tri8247 Рік тому

    thank you so much. It very well 💯

  • @swordmaster3005
    @swordmaster3005 5 років тому

    THIS WAS SO HELPFUL THANK YOU!

  • @pravatpandey1937
    @pravatpandey1937 5 років тому +2

    Hey! Awesome Tutorial.
    Can anyone tell me why we used coroutine and waitForEndOfFrame ?
    What would happpen otherwise?
    Why do we generally use this technique?

    • @waqasgamedev
      @waqasgamedev 4 роки тому +1

      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.

  • @Dulu.bijuterias
    @Dulu.bijuterias 4 роки тому

    Amanzing........congratulations!!!!

  • @Santanu_Pal
    @Santanu_Pal Рік тому

    Transform.posion is ok but any suggestion for transform.rotation if it would be a car in place of cat

  • @karenminasyan8209
    @karenminasyan8209 5 років тому +2

    Amazing tutorial, thank you 🤩🤩🤩

  • @pavel9425
    @pavel9425 5 років тому +1

    Thank you! Great tutorial.

  • @mhmde3
    @mhmde3 4 роки тому

    great tutorial, thank you very much

  • @federickpabalate3606
    @federickpabalate3606 4 роки тому +1

    Hi, how can i implement dragging object through the bezier curve only. hope you help me thanks

  • @stoychostankov886
    @stoychostankov886 3 роки тому

    This is really awesome. Thank you

  • @jean-michel.houbre
    @jean-michel.houbre 5 років тому +1

    Very interesting ! I love it.

  • @user-em9su3dd9y
    @user-em9su3dd9y 2 роки тому

    Awesome, thanks!

  • @blossumgames9443
    @blossumgames9443 4 роки тому

    They way you cracked that shi*... joke.... so professional senpai! :D

  • @Krafter37
    @Krafter37 4 роки тому

    Very nice tutorial, thanks :)

  • @amirrezarabani7861
    @amirrezarabani7861 8 місяців тому

    Thank You ❤❤❤❤❤❤❤❤

  • @TheFakeShadow
    @TheFakeShadow 6 років тому +1

    Wow .. Awesome stuff .. you know your stuff .. Sorry for Redundancy XD

  • @9uile125
    @9uile125 3 роки тому +1

    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 ?

  • @TheTVShare
    @TheTVShare 3 роки тому +1

    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.

  • @uroojfatima9169
    @uroojfatima9169 Рік тому

    How can we make a line renderer on mouse position follow the path defined by bezian curve

  • @Carlixyz
    @Carlixyz 5 років тому

    VEry nice! Is it possible in an easy way to adjust the object rotation to aim always towards path?

  • @ethanfields8737
    @ethanfields8737 4 роки тому

    hey how do you adjust how many gizmos are on the line of the curve?

  • @haarissheikh3187
    @haarissheikh3187 3 роки тому

    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

  • @zubairhussain-kl9pm
    @zubairhussain-kl9pm Рік тому +1

    speed is not same throughout animation ...How can we do that?

  • @littleninja7485
    @littleninja7485 5 років тому +2

    how to make it stop looping??

  • @viditkhanna3721
    @viditkhanna3721 5 років тому

    Great tutorial. But how can i show the curve in run-time in game view?

  • @bigneiltoo
    @bigneiltoo 3 роки тому

    How would we place objects on Bezier surfaces with (u,v) versus t?

  • @bimbaca3716
    @bimbaca3716 6 років тому +1

    love this tutorial

  • @jhovala
    @jhovala Рік тому

    U R ... GREAT!

  • @erdemakar
    @erdemakar 3 роки тому

    Hey I was looking for this but in a different view, can we make a 2d laser with bezier curve?

  • @random_precision_software
    @random_precision_software 4 роки тому

    Love it..I'm using it for a space enemy waves attack..but how do I have 10 enemies following the route a split second after each other?

    • @TreacherousDev
      @TreacherousDev 4 роки тому

      this is 2 weeks old but have you tried using Invoke? Invoke lets you perform a function after a set delay.
      Invoke("FunctionName", 5f)
      calls a function after 5 seconds

    • @random_precision_software
      @random_precision_software 4 роки тому

      @@TreacherousDev Yes, I could try that . THNX

    • @TreacherousDev
      @TreacherousDev 4 роки тому

      @@random_precision_software No problem
      Also if you want to keep spawning enemies for a set amount of time, you can use InvokeRepeating to save a few lines of code.
      Example:
      InvokeRepeating("SpawnEnemy", 2f, 5f)
      spawns an enemy after 2 seconds, then spawns anothet after 5 seconds again and again untill the function gets deactivated.

  • @fcblp1
    @fcblp1 Рік тому

    is there anyway the object can go back the bezier curve while in the middle of it?

  • @HF97Damnation
    @HF97Damnation 5 років тому +1

    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?

    • @AlexanderZotov
      @AlexanderZotov  5 років тому +1

      Here is a comment in this thread right about it.

    • @paulhoover5511
      @paulhoover5511 5 років тому +1

      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.

  • @Life-yy9cl
    @Life-yy9cl 3 роки тому

    Want to give you a hug

  • @vizualwanderer
    @vizualwanderer 3 роки тому

    Question: how do u find the midpoint, or is it as easy as adding the start point end point coordinate and dividing by 2?