Задать вопрос
@MaxXxWell

Как исправить код разворота?

Всем добрый день, может кто-нибудь помочь с кодом ? Код должен делать разворот объекта по оси Z и он работает , я нажимаю на объект и поворачиваю влево/вправо , но каждый раз когда я убираю палец и снова нажимаю на объект - он сам разворачивается в место моего касания , а мне нужно чтобы я мог продолжить разворот с того места где я отпускал нажатие , а тут получается каждый раз по новой поворачивать. Сколько не пробуй никак не смог настроить код , ниже сам код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ToucTurn : MonoBehaviour
{

[Header("Degree of rotation offset. *360")]
publicfloat offset = 0f;

Vector3 startDragDir;
Vector3 currentDragDir;
Quaternion initialRotation;
float angleFromStart;

void OnMouseDown()
{

startDragDir = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;

initialRotation = transform.rotation;
}

void OnMouseDrag()
{
Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;

difference.Normalize( );

float rotationZ = Mathf.Atan2( difference.y, difference.x) * Mathf.Rad2Deg;

transform.rotation = Quaternion.Euler( 0f, 0f, rotationZ - (0 + offset) );
}
}
  • Вопрос задан
  • 34 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы