Создал 3д модель
Нужно что бы поршень по клику мышки выдвигался , толкал впереди стоящий предмет и возвращался в свое исходное положение .
Я использовал изначально transform.position для выдвижного элемента, но он просто резко переходит в координаты и так же возвращается
Я попробовал через MoveTorwards , но там происходят странные вещи. В одну сторону все передвигается плавно а в обратную обьект трясет
public class Porshen3D : MonoBehaviour
{
public GameObject midleShtyka;
public Vector3 toPosition;
public Vector3 firstPosition;
public float force;
bool click;
void Start()
{
toPosition = midleShtyka.transform.position + toPosition;
firstPosition = midleShtyka.transform.position;
}
void FixedUpdate()
{
if ( click)
{
StartCoroutine(MoveForward());
}
}
private void OnMouseDown()
{
click = true;
}
IEnumerator MoveForward()
{
if (click)
{
midleShtyka.transform.position = Vector3.MoveTowards(midleShtyka.transform.position, toPosition, Time.deltaTime * force);
yield return new WaitForSeconds(1);
midleShtyka.transform.position = Vector3.MoveTowards(toPosition, firstPosition, Time.deltaTime * force);
}
}
}
На данный момент я сделал просто обычную анимацию которая вызывается через тригер в коде по клику мышки на обьект. Правильно ли это?Не костыль ли это?s
Как сделать это верно?
Если есть какая нибудь книга или ресурс после которого все вопросы отпадают , буду очень признателен)))