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

Угол полёта снаряда

26.01.2017, 14:51. Показов 4310. Ответов 3

Студворк — интернет-сервис помощи студентам
Ух, как же я задолбался с этими пушками.
В общем, пишу универсальный скрипт на оружие для 2D игры, чтобы нарисовал новую пушку, закинул скрипт на неё, прописал поля и оружие готово, научился задирать ствол в небо, опускать к земле, всё работает без багов (Почти), теперь встала проблема с углом полёта снаряда, он летит прямо, не обращая внимание на то, куда направлен мой ствол (см. скрины), как заставить снаряд лететь по физике, ака стрела из арбалета? Чуть позже изменю точку приложения силы, но проблему это не решит. Код ниже.
На скрине зелёным отмечена текущая траектория полёта, а красным желаемая.
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
public class GunScript : MonoBehaviour
{
    public GameObject spawnShell; // место появления снаряда
    public GameObject Shell; // снаряд
    public float speedShell; // скорость снаряда
    public float timeShot; // время между выстрелами
    public float reloadTimeStandart; // Обычное время перезарядки
    public float reloadTime; // Время перезарядки
    public int ammoInMagazin; // Кол-во патронов в магазине 
    public int ammoAll; // Всего патонов
    public int standartAmmo; // Нормальное кол-во патронов в магазине
    public KeyCode Fire; // выстрел
 
    private float timerShot; // важная характеристика для скорострельности оружия (Не менять)
    void Update ()
    {
        if (timerShot > 0) // Таймер скорострельности
            timerShot -= Time.deltaTime;
        
        if (Input.GetKey(Fire) && timerShot <= 0 && ammoInMagazin > 0) // Стрельба
           FireGun();
    }
void FireGun() // Стрельба
    {
        
        Quaternion shellSpawn = spawnShell.transform.localRotation; // Характеристика поворота оружия для спавна патронов
 
        if (theScale.x > 0.2)
        {
            GameObject ShellRBObject = Instantiate(Shell, spawnShell.transform.position, spawnShell.transform.rotation);
            Rigidbody2D ShellRB = ShellRBObject.GetComponent<Rigidbody2D>();
            ShellRB.AddForce(new Vector2(speedShell, 0f));
            timerShot = +timeShot;
            ammoInMagazin--;
        }
Знаю, что проблема заключается в "ShellRB.AddForce(new Vector2(speedShell, 0f));", нужно отсюда убрать вектор, но если использовать просто: "ShellRB.AddForce(transform.forward * speedShell);", то это никак не работает и снаряд просто падае на месте, где спавнится.
Миниатюры
Угол полёта снаряда  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2017, 14:51
Ответы с готовыми решениями:

Как игнорировать пару объектов на пути полёта луча
Всем привет. Модель человека. Луч идёт из объекта (туловища) и летит вниз(по вектору гравитации).Туловище в конце концов падает. Пока тело...

Создание снаряда
Не могу осилить небольшой скрипт. Он отвечает за движение по экрану объекта и выстрел. using UnityEngine; using System.Collections; ...

Создание снаряда
В принципе я его и создал, код висит на персонаже, вопрос в том как его заставить полететь? Снаряд в моем случае это спрайт, можно и...

3
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
26.01.2017, 18:34
Потому что 2д. Надо transform.right
0
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 12
27.01.2017, 08:18  [ТС]
Цитата Сообщение от Cr0c Посмотреть сообщение
Потому что 2д. Надо transform.right
Таки ничего не изменилось.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
27.01.2017, 09:27
Значит не тот трансформ берете. Спрайт винтовки смотрит вправо или вверх в нулевом повороте?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2017, 09:27
Помогаю со студенческими работами здесь

Рассчитать точку падения снаряда
Всем привет. Кто знает как рассчитать точку падения снаряда. Пушка стоит на рельефном террейне, когда игрок в зоне видимости пушки она...

Расчёт падения артиллерийского снаряда
Всем привет. Unity C#. Возможно мой вопрос кому то покажется глупым, но никак не могу сообразить как рассчитать дальность полёта снаряда...

Работа с векторами и углами (физика снаряда). Neoaxis Engine
Доброго времени суток! Интересует два вопроса: 1. У меня задан конус заброневых осколков. Вопрос - как сделать их...

Как переделать эту прогу для запуска ракеты, а не снаряда и на си шарп
Как переделать эту прогу для запуска ракеты, а не снаряда и на си шарп? И что бы она приземлялась на землю? ...

Моделирование полёта снаряда орудия
Нудно сделать вот эту задачу--------&gt; 1. Моделирование полёта снаряда орудия. Задаётся масса снаряда, начальная скорость, угол наклона...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты 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 и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru