Понедельник, 25 Ноября 2024, 02:52

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как в RotateAround юзать определенное значение поворота?
PRImenCREATORДата: Вторник, 08 Октября 2019, 19:06 | Сообщение # 1
был не раз
Сейчас нет на сайте
Пишу игру на C#. Столкнулся с проблемой, нужно вращать камеру вокруг игрока, но не полностью. Но мне нужно указать макс. значение поворота, в данном случае 45. Написал код, благодаря которому вычисляю координаты мышки от центра экрана. А вот как вставить значение этого кода в RotateAround, чтобы он не беспрерывно поворачивался с определенной скоростью, а как бы сразу становился на нужные координаты.
Буду рад любой помощи...


Сообщение отредактировал PRImenCREATOR - Вторник, 08 Октября 2019, 19:10
InsaneSystemsДата: Вторник, 08 Октября 2019, 19:30 | Сообщение # 2
участник
Сейчас нет на сайте
PRImenCREATOR, вставьте ваш угол в одну из осей transform.localEulerAngles. Это угол поворота по 3 осям объекта. Разумеется, чтобы 45 подошло, необходимо, чтобы стартовый поворот объекта равнялся 0 по нужной оси, а лучше по всем трём.
PRImenCREATORДата: Среда, 09 Октября 2019, 04:28 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата InsaneSystems ()
PRImenCREATOR, вставьте ваш угол в одну из осей transform.localEulerAngles. Это угол поворота по 3 осям объекта. Разумеется, чтобы 45 подошло, необходимо, чтобы стартовый поворот объекта равнялся 0 по нужной оси, а лучше по всем трём.

Вы немного не поняли, камера должна вращаться вокруг оси игрока, а не просто поворачиваться за ним.
InsaneSystemsДата: Среда, 09 Октября 2019, 12:08 | Сообщение # 4
участник
Сейчас нет на сайте
PRImenCREATOR, понял, моё решение подходит, только нужно это угол там записывать с нужным вам интервалом, а по достижении 45 (или иное значение, подходящее под ваши условия) прекращало дальнейшее движение. Более точного ответа без примера исходного кода лично я дать не могу.
PRImenCREATORДата: Среда, 09 Октября 2019, 13:27 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата InsaneSystems ()
PRImenCREATOR, понял, моё решение подходит, только нужно это угол там записывать с нужным вам интервалом, а по достижении 45 (или иное значение, подходящее под ваши условия) прекращало дальнейшее движение. Более точного ответа без примера исходного кода лично я дать не могу.

Может я тупой, может что то делаю не так, но так я и не понял, как применять этот скрипт.
Можно пожалуйста простейший пример?
InsaneSystemsДата: Среда, 09 Октября 2019, 21:45 | Сообщение # 6
участник
Сейчас нет на сайте
Код

float angleValue;

void Update()
{
    angleValue = Mathf.Clamp(angleValue + Time.deltaTime, 0f, 45f);

    transform.localEulerAngles = new Vector3(angleValue, 0, 0);
}


Разумеется, вместо Time.deltaTime и вообще всей этой конструкции конкретно ваше действие. Но опять же, без примера вашего кода и задачи, которую нужно решить, я не могу быть уверен, что это вообще то, что нужно. Да и точного решения вам всё же лучше добиться самостоятельно, я лишь примерно указываю вариант, в сторону которого можно двигаться.


Сообщение отредактировал InsaneSystems - Среда, 09 Октября 2019, 21:47
  • Страница 1 из 1
  • 1
Поиск:

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