Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 29.04.2024
Сообщений: 2

Как исправить дергающуюся камеру в шутере а-ля Doom?

29.04.2024, 19:12. Показов 584. Ответов 5

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Делаю игрушку, похожую на Doom. Часто в шутерах приходится уклоняться от атак противников, двигаясь в бок и удерживая камеру направленной в одну точку. Так вот, при таком действии всё начинается трястись. Смотрел гайды на ютубе, в интернете, пробовал чужой код использовать - не выходит. Как это исправить?
Код персонажа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
 
public class PlayerController : MonoBehaviour
{
    [SerializeField] Rigidbody rb;
    //[SerializeField] GameObject cam;//camera
    [SerializeField] float speed;
    [SerializeField] private float sensivity;
    float horrot = 0;//horizontal rotation
    void Start()
    {
        //locking cursor
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
    }
 
    private void Update()
    {
        Rotate();
        //Movement();
    }
    private void FixedUpdate()
    {
        //Rotate();
        Movement();
    }
    private void Rotate()
    {
        //Rotation of camera and player
        horrot = Input.GetAxis("Mouse X") * sensivity;
        transform.Rotate(0, horrot, 0);
    }
 
    private void Movement()
    {
        Vector3 f = new Vector3(), r = new Vector3();
        //phisical movement player
        if (Input.GetKey(KeyCode.W))
        {
            f = transform.forward;
        }
        else if (Input.GetKey(KeyCode.S))
        {
            f = -transform.forward;
        }
        else if (!Input.GetKey(KeyCode.W) && !Input.GetKey(KeyCode.S))
        {
            f = Vector3.zero;
        }
        if (Input.GetKey(KeyCode.D))
        {
            r = transform.right;
        }
        else if (Input.GetKey(KeyCode.A))
        {
            r = -transform.right;
        }
        else if (!Input.GetKey(KeyCode.D) && !Input.GetKey(KeyCode.A))
        {
            r = Vector3.zero;
        }
        rb.velocity = (f + r).normalized * speed;
        /*float rghtspeed = Input.GetAxis("Vertical")*speed;
        float fwdspeed = Input.GetAxis("Horizontal") * speed;
        transform.Translate(fwdspeed, 0, rghtspeed);*/
    }
}
Код барышни(моб - спрайт, поворачивающийся к игрку лицом):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlTypes;
using UnityEngine;
 
public class SpriteRotator : MonoBehaviour
{
    [SerializeField] Transform player;
    /*private void FixedUpdate()
    {
        transform.LookAt(player, Vector3.up);
    }*/
    private void Update()
    {
        transform.LookAt(player, Vector3.up);
    }
}
Короткое видео прикрепил.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2024, 19:12
Ответы с готовыми решениями:

Linux не видит камеру, как исправить?
Всем добра и здоровья! Уважаемые знатоки, помогите решить проблему. Приобрел камеру no name. Единственные опознавательные данные на...

Ошибки unresolved external symbol (Mem_Alloc16) при сборке doom.dll вместо doom.lib
Здравствуйте! Подскажите, почему вылезает куча ошибок при сборке модуля дума как .dll вместо .lib? При сборке в .lib всё собралось успешно...

DOOM 2016 или DOOM Eternal
Что лучше DOOM 2016 или DOOM Eternal? Какая игра без сюжета и головоломок?

5
30.04.2024, 08:44

Не по теме:

Я не знаю что у вас за видео, но после его открытия у меня моментально слетают дрова видеокарты и срабатывает касперский...

0
30.04.2024, 08:51

Не по теме:

ZIU, VirusTotal ни одного срабатывания не выдает.

0
Никто
 Аватар для ZIU
33 / 19 / 2
Регистрация: 16.07.2023
Сообщений: 344
30.04.2024, 08:53
Цитата Сообщение от Storm Screamer Посмотреть сообщение
ZIU, VirusTotal ни одного срабатывания не выдает.

Не по теме:

Странно, возможно , это у меня что-то с видеокартой, но она наотрез отказывается показывать мне это видео - сразу отключается . С другими видео все нормально. Хотелось бы попросить ТС залить видео на какой-либо видеохостинг

0
1144 / 309 / 159
Регистрация: 30.07.2022
Сообщений: 1,783
Записей в блоге: 4
30.04.2024, 14:56
Maksim59, если скомпилировать проект, дрожание остается?
у юнити иногда бывает, что в редакторе частота кадров низкая и кажется, что дергает.
а в конечном проекте всё нормально работает.

Добавлено через 3 минуты
если в билде дрожать продолжит.

попробуйте заменить transform.Rotate на Rigidbody.MoveRotation
вы же всё таки двигаете объект при помощи Rigidbody.
1
0 / 0 / 0
Регистрация: 29.04.2024
Сообщений: 2
30.04.2024, 22:56  [ТС]
Вращение умышленно нефизическое. Если делать его таковым, персонаж цепляется за стены и вертится в силу снятой галочки Freeze rotation y. Хотя я попровал временно отойти от этого... Не сработало всё равно. Пробовал камеру в FixedUpdate пихать, ещё хуже всё.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2024, 22:56
Помогаю со студенческими работами здесь

Как подключить цифровую камеру как веб-камеру
есть цифровая камера sony steadyshot dsc-s2000, usb-провод для этой камеры, компьтер без вебки acer extensa 5220 windows 7. Компьтер камеру...

Как сделать стрельбу в 3D Top-down шутере?
Делаю поделку в шк на юнити. У меня есть космический кораблик, он летает на wasd и камера летает за ним на одинаковом расстоянии(не...

Как установить джойстики передвижения и стрельбы в 3d шутере?
Доброго времени суток, у меня есть проект на Unity, но мне необходимо перенести его на Android. Как я понял, для этого нужно установить...

Как запустить Doom 3 на Windows 7?
Помогите плиз =)

Как собрать Doom 3 BFG под VS 2015
Уважаемые знатоки, я хотел порсмотреть пример какого то сложного, но интересного кода и на нём поучиться. Пока мой опыт очень скромный,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru