Моя игра - базовая c игра с качанием веревки, и у меня ObjectA (стена) отходит от ObjectB (мяч качается с веревки), а затем ObjectA возвращается в исходное положение, когда ObjectB больше не находится в вызывать. Когда ObjectA возвращается в свое исходное положение, оно гладкое, как масло, но когда объект B отталкивает его с пути, он становится нестабильным, особенно на высоких скоростях (но мне нужно, чтобы он двигался на высоких скоростях, см. Код ниже, чтобы понять). Чтобы быть понятным, мой код функционирует полностью, я просто ищу хитрый трюк или совет, чтобы помочь сгладить эффект «отталкивания», так же, как это, когда он возвращается к BaseWallPosition.
void Update() {
if (BallInTrigger) {
target.position = Vector2.MoveTowards(target.position, new Vector2(transform.position.x, BaseWallPosition.y), -1 * rb.velocity.magnitude * Time.deltaTime);
}
else {
target.position = Vector3.MoveTowards(target.position, BaseWallPosition, WallMoveSpeed * Time.deltaTime);
}
}
void OnTriggerStay2D(Collider2D col) {
if (col.tag == "Wall") {
BallInTrigger = true;
}
}
Очевидно, что в этом коде гораздо больше, но это важный момент в проблеме