Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание и обсуждение игр
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 23.09.2017, 10:59   #181
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 151
Репутация: 65
По умолчанию

Подскажите как можно сделать поворот объекта на 90 градусов по клику. То есть кликнул по нему он повернулся, кликнул еще он опять повернулся и чтобы поворот был виден а не резко на 90 градусов, анимация не подходит
_Михаил_ вне форума   Ответить с цитированием
Старый 23.09.2017, 12:03   #182
8Observer8
Профессионал
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Адрес: Саратов
Сообщений: 3,069
Репутация: 832
По умолчанию

Поясните, пожалуйста, что значит, анимация не подходит? Не резкий, а плавный поворот - это и есть анимация. Анимация - это когда каждый кадр угол объекта (и/или его положение, и/или его масштаб) меняются. Или вы что-то другое имеете ввиду?
8Observer8 вне форума   Ответить с цитированием
Старый 23.09.2017, 21:00   #183
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 151
Репутация: 65
По умолчанию

То и значит что не подходит, объекты находящиеся на объекте который выполняет анимацию, могут проходить сквозь него.
_Михаил_ вне форума   Ответить с цитированием
Старый 23.09.2017, 21:01   #184
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 151
Репутация: 65
По умолчанию

Цитата:
public class Turn90Deg : MonoBehaviour {

public float turn_scale = 0.1f;
Quaternion next_turn = Quaternion.identity;
void Start () {

}

private void OnMouseDown()
{
Vector3 angles = transform.rotation.ToEulerAngles();
next_turn = Quaternion.identity;
next_turn.SetEulerRotation(angles.x , angles.y, angles.z + 3.14f / 2.0f);
}

void Update () {
transform.rotation = Quaternion.Slerp(transform.rotation , next_turn, turn_scale);
}
}
Вот это то что я искал
_Михаил_ вне форума   Ответить с цитированием
Старый 23.09.2017, 21:13   #185
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 151
Репутация: 65
По умолчанию

И вот еще 2 скрипта, оба ставятся на 1 объект

Цитата:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(Spinner))]
public class RotateOnClick : MonoBehaviour
{
[SerializeField]
private Vector3 eulerAngles = new Vector3(0, 90, 0);
[SerializeField]
private float time = 1f;

private Spinner spinner;

private void Start()
{
spinner = GetComponent<Spinner>();
}

private void OnMouseDown()
{
if (!spinner.SpinningNow)
{
spinner.Rotate(transform, eulerAngles, time);
}
}
}
Цитата:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Spinner : MonoBehaviour
{
private Coroutine rotation;
private float lerpTime;

public bool SpinningNow { get; private set; }

public bool Rotate(Transform transform, Vector3 eulerAngles, float rotationTime)
{
if (SpinningNow)
return false;

lerpTime = rotationTime;
rotation = StartCoroutine(LerpRotation(transfo rm, transform.rotation.eulerAngles, transform.rotation.eulerAngles + eulerAngles));
return true;
}

public void Stop()
{
if (rotation != null)
{
StopCoroutine(rotation);
}
}

private IEnumerator LerpRotation(Transform transform, Vector3 fromEulerAngles, Vector3 toEulerAngles)
{
float t, time;
t = time = 0f;
Vector3 eulerAngles;

SpinningNow = true;
while (t < 1)
{
time += Time.deltaTime;
if (time > lerpTime)
{
time = lerpTime;
}
t = time / lerpTime;
eulerAngles = Vector3.Lerp(fromEulerAngles, toEulerAngles, t);
transform.rotation = Quaternion.Euler(eulerAngles);
yield return new WaitForEndOfFrame();
}
SpinningNow = false;
}
}
_Михаил_ вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для онлайн игры gndjbs Фриланс 0 18.10.2012 15:19
бот для онлайн игры. Pein95 Общие вопросы Delphi 1 01.11.2011 06:28
Бои для онлайн игры. Abuhamed PHP 10 25.01.2011 16:39
Инструменты для онлайн игры lexesv Фриланс 4 30.08.2010 15:13




04:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru