Помогите разобраться с поворотом объекта

Программирование на Юнити.

Помогите разобраться с поворотом объекта

Сообщение Parallax 18 ноя 2011, 14:02

Пытаюсь повернуть кубик на определенный угол с фиксированной скоростью.
Просматривая справку по скриптам, нашел пример:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public float smooth = 2.0F;
public float tiltAngle = 30.0F;
void Update() {
float tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;
float tiltAroundX = Input.GetAxis("Vertical") * tiltAngle;
Quaternion target = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
}
}


После поворота на угол tiltAngle кубик разворачивантся в исходное положение, как только отпущу клавишу.
Как можно зафиксировать разворот и, нажимая клавишу, осуществить дальнейший поворот по оси? (проще говоря несколько раз развернуть куб в одном и том же направлении)
Parallax
UNец
 
Сообщения: 15
Зарегистрирован: 24 сен 2011, 09:58

Re: Помогите разобраться с поворотом объекта

Сообщение raul82 19 ноя 2011, 23:15

ну прально, кнопку отпустил Input.GetAxis("Horizontal") вернул 0
5 годиков 7 месяцев
Аватара пользователя
raul82
Старожил
 
Сообщения: 506
Зарегистрирован: 21 янв 2011, 17:48
Откуда: Алматы

Re: Помогите разобраться с поворотом объекта

Сообщение BlackMamba 20 ноя 2011, 08:15

я бы написал событие и вызывал бы его по Input.GetButtonDown()
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Помогите разобраться с поворотом объекта

Сообщение AndreyMust19 20 ноя 2011, 11:35

У вас вот в чем ошибка - вы считываете положение осей и от их значения образуете Quaternion, который не зависит от ориентации вращаемого объекта. Устанавливайте значение target с учетом текущего расположения объекта:
Quaternion target = rotation + Quaternion.Euler(tiltAroundX, 0, tiltAroundZ);
Тогда когда отпустите кнопки, второй аргумент будет равен нулю, а target примет значение поворота, к-е было в предыдуем кадре.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Помогите разобраться с поворотом объекта

Сообщение Parallax 22 ноя 2011, 16:08

AndreyMust19 писал(а):У вас вот в чем ошибка - вы считываете положение осей и от их значения образуете Quaternion, который не зависит от ориентации вращаемого объекта. Устанавливайте значение target с учетом текущего расположения объекта:
Quaternion target = rotation + Quaternion.Euler(tiltAroundX, 0, tiltAroundZ);
Тогда когда отпустите кнопки, второй аргумент будет равен нулю, а target примет значение поворота, к-е было в предыдуем кадре.


Спасибо за совет! )
Parallax
UNец
 
Сообщения: 15
Зарегистрирован: 24 сен 2011, 09:58


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 11