Вот такое поведение имеется.
Суть: я двигаю один объект, а остальным транслирую на сколько и в каком направлении был сдвинут этот объект. Однако объект который я двигаю изначально - двигается быстрее остальных.. Не могу понять почему.
//Объект который двигаю
void OnFixedUpdate()
{
if (IsDragged)
{
var lastPosition = transform.position;
direction = cursorPosition - (Vector2)transform.position;
transform.Translate(direction * Time.fixedDeltaTime * dragSpeed);
if (OnDragEvent != null)
OnDragEvent(this, transform.position - lastPosition);
}
}
//Список объектов повторяющих движение. Метод вызывается при генерации события OnDragEvent
void TranslateDrag(IDragable obj, Vector2 v)
{
for (int i = 0; i < groupObjects.Count; i++)
{
if (groupObjects[i] != obj)
(groupObjects[i] as SelectableComponent).transform.position += (Vector3)v;
}
}