Форум программистов, компьютерный форум, киберфорум Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 67
1

TPSMouseLook; Камера от 3-его лица; Синхронизация поворотов камеры и персонажа

11.07.2015, 17:55. Показов 7275. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день! Сразу оговорю, что уровень моих знаний очень низкий, так что прошу строго не судить меня. Моя проблема возникла в Unity Version 4.5.5f1, скрипты пишу в MonoDevelop 4.0.1 на языке C#.
Достаточно дельного по своей проблеме в интернете я ничего не нашел, поэтому обращаюсь сюда.
Собственно описание самой проблемы.
Пытаюсь сделать условно простой обзор камерой от третьего лица. Для понимаю хочу привести примеры игр-ориентиров: Rune, Gothic. Т.е. поворот персонажа происходит одновременно с вращением камеры вокруг оси Y. Возникла проблема несинхронного их поворота, поворот персонажа запаздывает.
Привожу кусок скритпа, в котором это реализуется. Скрипт привязывается к камере.
C#Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
void FixedUpdate()
{
    gameObject.transform.RotateAround(controlledObject.transform.position,
        controlledObject.transform.up, Input.GetAxis("Mouse X") * sensitivityX);
 
    rotationY = Input.GetAxis("Mouse Y") * sensitivityY;
 
    gameObject.transform.RotateAround(controlledObject.transform.position,
        gameObject.transform.right, -rotationY);
 
    if (charRot == CharacterRoration.Enabled)
        controlledObject.transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
}
Где controlledObject является parent камеры.
Подскажите, пожалуйста, в чем моя ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2015, 17:55
Ответы с готовыми решениями:

Камера у персонажа от третьего лица
Начал делать так, чтобы если ты играешь за персонажа от третьего лица, то ты мог поворачивать...

Камера от 3-го лица
Ребят помогите!!! Необходимо написать скрипт поворота персонажа за камерой, т.е. обычная камера от...

Посоветуйте игры от лица женского персонажа для ПК
Хотелось бы что-то типа байонетты или т.п. Но байонетта только приставочная, мб есть что-то такое...

Сделать передвижение персонажа с видом от первого лица в graph3d
Сделать передвижение персонажа с видом от первого лица в graph3d. Добавлено через 2 минуты Ну...

4
4 / 4 / 1
Регистрация: 31.10.2013
Сообщений: 36
12.07.2015, 21:26 2
Если controlledObject это родитель камеры, то возможно в этом и проблема. Попробуй их разделить. Ещё есть вариант поворачивать сразу 2 объекта. Но лучше поворачивать только перса, а камеру привязать к нему и вращать только по Y. Если всё равно что то лагает, сделай интерполяцию поворота(p.s. для сети, я не знаю как там обстоят дела, просто советую)
1
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 67
12.07.2015, 22:36  [ТС] 3
ShortKedr, скорее всего вы были правы. По крайней мере такая штука дает нужный эффект, перс поворачивается вместе с камерой.
C#Выделить код
1
2
3
4
if (Input.GetKeyDown(KeyCode.R))
{
    controlledObject.transform.Rotate(0, 50F, 0);
}
Спасибо за помощь.
0
103 / 90 / 19
Регистрация: 15.04.2015
Сообщений: 353
13.07.2015, 12:17 4
Можно было попробовать присваивать персонажу поворот камеры.
0
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 67
13.07.2015, 12:33  [ТС] 5
lentinant, да, так и надо. ShortKedr это и советовал.
Вообще, на мой взгляд, эта тема уже исчерпана. Можно закрыть ее.
0
13.07.2015, 12:33
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.07.2015, 12:33
Помогаю со студенческими работами здесь

Камера от первого лица
В который раз, вечер добрый, очередная проблема, хотя не решились еще предыдущие) Необходимо...

Unity 5, камера от 3 лица
Привет вам добрые форумчане, столкнулся с небольшой проблемой. Написал механику движения от 3 лица,...

Камера персонажа
Идея проста - сделать так, чтобы фокус (камера) следовала за игроком. Я создаю карту на Windows...

Камера персонажа
Подскажите пожалуйста, как в данном скрипте поднять камеру чуть выше по Y? using UnityEngine; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
NoSQL базы данных: что это такое и какие существуют
bytestream 22.01.2025
В современную эпоху цифровой трансформации объемы данных растут экспоненциально, создавая новые вызовы для традиционных систем управления базами данных. NoSQL (Not Only SQL) представляет собой. . .
Обновление исследования от команды MCM (январь 2025 г.)
Programma_Boinc 22.01.2025
Обновление исследования от команды MCM (январь 2025 г. ) Мы продолжаем изучать молекулярные сигнатуры, связанные с раком легких, с текущим фокусом на GCM1, факторе транскрипции, участвующем в. . .
Как работать с Kafka в Go (Golang)
bytestream 22.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки событий и интеграции микросервисов. Эта система, изначально. . .
Как использовать RabbitMQ в Go (Golang)
bytestream 22.01.2025
RabbitMQ представляет собой надежный и широко используемый брокер сообщений, который играет ключевую роль в построении современных распределенных систем и микросервисной архитектуры. В основе работы. . .
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач. . . .
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru