В инспекторе в меню кнопок «OnClickEvent» нажмите кнопку «плюс», перетащите объект, содержащий компонент «MoveCard». В раскрывающемся списке справа найдите метод CardMovement. Просто отметьте в вашем текущем коде, который вы настроили, поэтому, если вы нажмете кнопку, он переместит движение только на один кадр. Вы можете изменить что-то вроде этого:
public class MoveCard : MonoBehaviour
{
public float speed = 20f;
public Rigidbody2D rb;
public Vector2 pos = new Vector2(5,1);
public bool moving = false;
void Update(){
if (moving) {
rb.MovePosition(pos * speed * Time.deltaTime);
}
}
void CardMovement(){
moving = true;
}
}
edit (все еще неплохая идея):
//..
void FixedUpdate()
{
if (moving) {
rb.MovePosition(pos * Time.fixedDeltaTime);
}
}
//..
edit edit: установить isKinemati c в значение true на жестком корпусе