Пятница, 19 Апреля 2024, 09:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Пожалуйста помогите изменить код !!! (Застрял , Unity)
Пожалуйста помогите изменить код !!!
--MaxWell--Дата: Понедельник, 23 Марта 2020, 07:29 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем добрый день, может кто-нибудь помочь с кодом ? Код должен делать разворот объекта по оси Z и он работает , я нажимаю на объект и поворачиваю влево/вправо , но каждый раз когда я убираю палец и снова нажимаю на объект - он сам разворачивается в место моего касания , а мне нужно чтобы я мог продолжить разворот с того места где я отпускал нажатие , а тут получается каждый раз по новой поворачивать. Сколько не пробуй никак не смог настроить код , ниже сам код.

[code]
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) );
}
}


Сообщение отредактировал --MaxWell-- - Понедельник, 23 Марта 2020, 07:50
drcrackДата: Понедельник, 23 Марта 2020, 10:29 | Сообщение # 2
старожил
Сейчас нет на сайте
Ты сохраняешь initialRotation но никак не используешь
Попробуй добавить его сюда:
Код
transform.rotation = initialRotation * Quaternion.Euler( 0f, 0f, rotationZ - (0 + offset) );
--MaxWell--Дата: Понедельник, 23 Марта 2020, 17:54 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата drcrack ()
Ты сохраняешь initialRotation но никак не используешь
Попробуй добавить его сюда:
Код
transform.rotation = initialRotation * Quaternion.Euler( 0f, 0f, rotationZ - (0 + offset) );


Попробовал , после замены строки в коде объект вообще перестал вращаться , он только встал в начальное положение когда я по нему кликнул (когда я запускаю проект мой объект рандомно разворачивается влево/вправо , сейчас по клику он просто встал в свое начальное положение )
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Пожалуйста помогите изменить код !!! (Застрял , Unity)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг