@walfer2020
Начинающий программист

Как создать поршень на Unity как в игре Minecraft?

Создал 3д модель 5ff7344300419658621520.jpeg
Нужно что бы поршень по клику мышки выдвигался , толкал впереди стоящий предмет и возвращался в свое исходное положение .5ff73139c1af9404232097.jpeg

Я использовал изначально 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
Как сделать это верно?
Если есть какая нибудь книга или ресурс после которого все вопросы отпадают , буду очень признателен)))
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы