I have the following code which is attempting to move an object along a path of 3 defined points using my interpretation (which is most likely the problem) of a Bezier curve. I am aiming longterm to change the EndPoint variables to the StartPoint variables to start a new curve from the end of this one. I have solved the problem I had and this code now works for anyone who wants the same kind of effect. var StartPointX: float = 0; var StartPointY: float = 0; var ControlPointX: float = 20; var ControlPointY: float = 50; var EndPointX : float = 50; var EndPointY : float = 0; var CurveX:float; var CurveY: float; var BezierTime: float = 0; var mySphere: Transform; function Update() { BezierTime = BezierTime + Time.deltaTime;
}
show all comments
(comments are locked)

The original question was a mistyping of the actual equation. I have changed the code so that it is now workable for anyone whom wants to adapt or use it.
(comments are locked)

Well, just found this question, i know you got it to work but you've heard about Vector2 / Vector3 and functions?
That's are two versions: a quadratic bezier(one control point) and a cubic bezier(two control points). Each comes in two versions: Vector2 and Vector3. The cubic equatation is transformed so you don't have those ugly (1t)(1t)(1t). When you just multiply the brackets you get (1 + (3 +(3t)*t)*t) which looks even more ugly but with the other terms it resolves quite nicely ;) thanks a lot for this solution, it was really helpful.
Dec 23, 2011 at 03:56 PM
flamy
(comments are locked)

You can also use a tweening class like LeanTween to accomplish the same effect:
You can also chain different paths together very easily, like
And if you do not wish it to move at a constant speed you can pass an easing function like:
Just a hint for anyone out there who doesn't want to have to write their own bezier interpreting code!
(comments are locked)

Do I just add this to a cube or sphere to text? What do I use for the transform? I tried adding the script to an empty game object. Then I draged the cube to the "Transform" zeroed the "Y' values. I get nothing. Help please. Thanks
(comments are locked)

I have edited to the above question to show a now working solution
So helpful!!! Is the 3D version simple?
CurveZ = (((1BezierTime)(1BezierTime)) StartPointZ) + (2 BezierTime (1  BezierTime) ControlPointZ) + ((BezierTime BezierTime) * EndPointZ); <<  add this and you'll have the 3D version. Of course, you'll have to declare the necessary variables for Z.
This is a great solution. But I have to ask, how do you control the speed variable? by default, the object is way too fast. Thanks again!
I hate to do this, but which variables control the speed of how fast the object moves along the curve?
I assume it's Beizertime, but I've attempted to manipulate this variable, and it doesn't seem to slow the object down.