@ikeky

Как сделать круговое движение в unity?

попытался сделать круговое движение в юнити
но курсор постоянно не может повернуть объект больше 90 градусов

https://www.youtube.com/watch?v=JidMgS4gaK8&featur...

Вот код:
Y = Input.mousePosition.y;
X = Input.mousePosition.x;
posX = Mathf.Cos(Mathf.Atan2(transform.localPosition.x / 2 - Y, transform.localPosition.z / 2 - X)) * radius;
posY = Mathf.Sin(Mathf.Atan2(transform.localPosition.x / 2 - Y, transform.localPosition.z / 2 - X)) * radius;
Coll.localPosition = new Vector3(posY,0,posX);
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
@ikeky Автор вопроса
Неожиданно-негаданно я нашёл выход из данной ситуации. Я пошёл по совершенно другому подходу: использовал рейкасты и использовал transform.lookat
Ray cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
            Plane groundPlane = new Plane(Vector3.up, Vector3.zero);
            float rayLength;
            if(groundPlane.Raycast(cameraRay, out rayLength)){
                Vector3 pointToLook = cameraRay.GetPoint(rayLength);
                transform.LookAt(new Vector3(pointToLook.x,transform.position.y, pointToLook.z));
                if(Input.GetMouseButtonUp (0)){
                    transform.position = Coll.position;
                    EndFishkaEvent();
                }
            }

я закрою эту тему, возможно вам когда либо она пригодится.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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