Переместить объект с текущей позиции в другую в 2D
Суть такова: У меня есть скрипт который по нажатию кнопки UI воспроизводит анимацию рывка персонажа но только на том месте где он находится. Я начал писать код чтобы задать ему скорость и направление движения по нажатию на эту же кнопку но понял что не знаю как это правильно реализовать. Нужна ваша помощь! пробовал использовать lerp но не вышло
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Attack1 : MonoBehaviour
{
private Animator anim;
public void Attack() // во время этой анимации персонаж должен переместиться с текущей его позиции
{
anim = GetComponent<Animator>();
anim.SetTrigger("Attack");
}
}
Ответы (1 шт):
Если нужно переместить 3d объект, то нужно можно использовать Lerp через Button.onClick. А в случае с 2d тоже через Button.onClick но Rigidbody2d либо velocity, либо AddForce.
Делаешь скрипт, добавляешь ивент на кнопку, туда кидаешь скрипт. 
Вот пример Lerp:
[SerializeField] private float speed = 10f;
void Update()
{
Vector3.Lerp(Transform.position("наша позиция"),"Укажи координаты куда переместится здесь",(speed*Time.deltaTime))
}
должно сработать, если нужно для 2d, то это как то так:
[SerializeField] private float Speed = 100f;
private Rigidbody2D body;
private void Awake()
{
body = GetComponent<Rigidbody2D>();
}
void Update()
{
body.AddForce(new Vector2(speed, body.velocity.y));
//или body.velocity = new Vector2(speed, body.velocity.y);
}
Вроде должно сработать