Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606

Некорректное движение объекта

21.06.2015, 07:49. Показов 1337. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Я в unity3d новичок и пытаюсь сделать несложную игру. Необходимо сделать простую механику движения машины. Нашел скрипт на C# Script и немного переделал, но поведение машину уж слишком не реалистичное, к тому же при заднем ходе поворот происходит инвертировано, так как объект просто поворачивается в ту сторону, куда указано, без учета направления движения.

Вот сам скрипт:
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
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
 
public class CarControl : BaseControl {
 
    public float speed = 15f;
    public float turnSpeed = 5f;
    public float hoverForce = 65f;
    public float hoverHeight = 3.5f;
    protected float powerInput;
    protected float turnInput;
    protected Rigidbody vehicleRigidbody;
 
    void Awake () {
        vehicleRigidbody = GetComponent <Rigidbody>();
    }
 
    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
 
    public void ModeUp() {
        powerInput = 1f;
    }
    
    public void ModeDown() {
        powerInput = -1f;
    }
    
    public void ModeStop() {
        powerInput = 0f;
    }
    
    public void ModeTurnLeft() {
        turnInput = -1f;
    }
    
    public void ModeTurnRight() {
        turnInput = 1f;
    }
    
    public void ModeTurnStop() {
        turnInput = 0f;
    }   
 
    void FixedUpdate() {
        Ray ray = new Ray (transform.position, -transform.up);
        RaycastHit hit;
        
        if (Physics.Raycast(ray, out hit, hoverHeight)) {
            float proportionalHeight = (hoverHeight - hit.distance) / hoverHeight;
            Vector3 appliedHoverForce = Vector3.up * proportionalHeight * hoverForce;
            vehicleRigidbody.AddForce(appliedHoverForce, ForceMode.Acceleration);
        }
        
        vehicleRigidbody.AddRelativeForce(0f, 0f, powerInput * speed);
 
        vehicleRigidbody.AddRelativeTorque(0f, Mathf.Sign() * turnInput * turnSpeed, 0f);
    }
}
Как мне здесь вытащить знак вектора скорости относительно локальных координат, чтобы инвертировать поворот при заднем ходе? Или может кто-то знает более хорошие примеры скриптов? Буду очень благодарен за помощь?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2015, 07:49
Ответы с готовыми решениями:

Некорректное движение через GetAxis
вот скрипт public float spead; private Rigidbody2D rb; void Start() { rb =...

Некорректное перемещение объекта
Есть проблема, при запуске игры, объект корбля произвольно вращается и произвольно двигается улетая со сцены, не знаю что делать все...

Unity3d, движение объекта
я установил unity3d ( я новичок). проблема такой создал объект. хочу чтоб он двигался. создал script и написал код. но не двигается.

1
22 / 22 / 10
Регистрация: 19.03.2015
Сообщений: 137
24.06.2015, 09:56
Rigidbody(2D).velocity
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2015, 09:56
Помогаю со студенческими работами здесь

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

Параллельное движение объекта
Куб движется по синей стрелке, как заставить его двигаться параллельно плоскости по красной стрелке? Глобальные позиции применять нельзя,...

Остановить движение объекта
Вот код только он не останавливает объект. using System.Collections; using System.Collections.Generic; using UnityEngine; ...

Движение объекта за пальцем
Есть 2д объект, который должен крутиться по оси z, при помощи зажатого пальца. Т е прикасаясь к экрану мы водим и он вращается на одном...

Плавное движение объекта
Здравствуйте. Пытаюсь сделать плавное движение объекта и компилятор выдаёт ошибку. Что не так? ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru