Я пытаюсь использовать addForceAtPosition
, чтобы rigidBody
(клон) следовал за gameObject
(целью), точнее go в той же позиции и повороте. Это мой код:
for(var points=0;points<3;points++)
{
Vector3 pr=Vector3.zero;
switch(points) //get some test points used as anchors
{
case 0: pr= new Vector3(0, 0, 0); break;
case 1: pr = new Vector3(0, 0.05f, 0); break;
case 2: pr = new Vector3(0, 0, 0.05f); break;
}
p = clone.transform.TransformPoint(pr); //get the clone test point world position
v = clone.GetPointVelocity(p); //and its velocity
pc = target.transform.TransformPoint(pr); //get the target body test point world position
Vector3 dist= (pc - (p + v * kv)); //add a part of the velocity to the position to reduce "elastic effect" (that part works)
Vector3 force = dist * k;
clone.AddForceAtPosition(force, p, ForceMode.Impulse);
}
Клон перемещается в позицию вокруг цели, но на заданном расстоянии, и если цель вращается, клон перемещается вокруг нее, сохраняя относительную позицию к ней. Кажется, это проблема относительного / абсолютного положения, но я не вижу, где я допустил ошибку.