Как в 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 |
|
| |