Глобальная логика оружия в Unity / смена оружия
HTML-код
- Опубликовано: 15 сен 2024
- В этом видео, я покажу как реализовать логику смены оружия при помощи клавиш и колеса мыши в Unity.
/ graphicaldesignua - мой патреон для поддержки)
unity.com/ru - ссылка на Unity
Самый лучший канал по unity 2d)
Спасибо!
Спустя долгое время, твои уроки помогли разобраться с многими вопросами!
Очень хорошее подробное объяснение, спасибо 👍
Спасибо, за классный урок, Александр.Вы лучшие!
Спасибо за видео. Жду следующее.
Молодец, прекрасно объясняешь. Но там где кнопки прописывал к оружию, было много if хотя можно было заменить на else if.
Думаю да) спасибо) Будем по ходу дела поправлять
Ты лучший! Лайк не глядя!
Спасибо, очень помог!)
Спасибо 👍 👍 👍 👍 👍 👍 👍 👍
а разве цикл foreach не перебирает данные маcсива?Можете объяснить?
Хорошее видео, но ОЧЕНЬ мало коментов.
Ты крут)\
Спасибо)
ХОРОШИЕ УРОКИ , ПОЧЕМУ ТАК МАЛО ПРОСМОТРОВ ? (
4:30 вместо if можно в метод передать i == weaponSwitch
Лучший
Отличные уроки! Все что я повторял все получилось , я в восторге! Но и есть конечно вопрос) как при смене оружия стрельбу то менять ну типа лазер на пули и наоборот , нужен какрой то селектор?
Для каждого отдельные скрипты
Целесообразнее использовать паттерны, с возможностью смены поведения
Invalid expression term '>' что делать? Всё написал как на видео.
А как сделать то же самое, но для телефона?
А как подключить анимации когда оружее персонаж достаёт?
А можешь сделать видео про совмещение подбора оружия и этого переключения?! Потому что хотелось бы подбирать, бросать и переключать оружие. Это очень интересная тема, по-моему. Так к куче полезной информации на твоём канале добавится ещё один информативный ролик. Буду безумно благодарен!) Ответь пожалуйста!
Так стоп!(4:10)Мы компонент Transform используем как игровой объект?Это как?!
для этого специально дописывают gameObject
А если сделать переключение через UI кнопки то вместо GetKey просто дать ссылку на кнопку ,верно??
Верно, запускать просто как метод.
Где взять ссылку на кнопку??
@@Edwardddddddddddddddd создаешь public void и в нем пишешь все кроме input, также этот void потом не надо дублировать и менять, создаешь кнопку, перетаскиваешь в нее weaponholder и привязываешь void, который ты только что прописал, изи
А как быть если оружия в игре очень много? Все ведь не привяжешь к персонажу.. Нужно просто в weaponholder трансформить префаб оружия? И как, например, из инвентаря вооружиться? Очень бы хотелось эти темы рассмотреть!
Так, много вопросов в одном сообщении, поэтому отвечаю на все, по порядку)
- Например?
- Почему?
- Поменять один префаб на другой? Нуууу, возможно, как один из вариантов. Думаю вообще это можно реализовать наверное десятком разных способов.
- Активировать оружие из инвентаря)
- Очень хотелось бы. Но эта тема наверное ближе к слову "инвентарь", чем к слову "оружие".
@@graphicaldesign2776 Оу! Спасибо что отвечаешь подписчикам!!!Очень ценно)
Много оружия, например десятки. Все ведь не прикрепишь в скелет. Не удобно. Гораздо удобней сделать в скелете пустой випонхолдер с пивотом в кисти, и во всех префабах оружия сделать пивот в районе рукоятки. А дальше при коллизии с игроком оружия лежащего на земле уничтожать его на земле и появлять у игрока в инвентаре или руках, если они пусты.
Спасибо еще раз за урок!
Мне даже интересно узнать пример шутера, в котором без инвентаря есть десятки видов оружия)
@@graphicaldesign2776 ну почему без инвентаря, с ним конечно. Например Старбаунд. Там десятки видов оружия и вряд ли оно привязано к скелету. Оно скорее всего просто инстансится в позиции при бодборе)
Но эти видео не направлены на работу с инвентарем. Это логика оружия, а не взаимодействие с предметами. И Starbound это не шутер) А песочница.
А в 3Д Будет работать?
привет а как это зделать у персонажа все эти вещи ну оружие а так спасибо за урок! всё норм!
Привязать все к плеер контролеру
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WeaponSwitch : MonoBehaviour
{
public int weaponSwitch = 0;
// Start is called before the first frame update
void Start()
{
SelectWeapon();
}
// Update is called once per frame
void Update()
{
int currentWeapon = weaponSwitch;
if (Input.GetAxis("Mouse ScrollWheel") > 0f)
{
if (weaponSwitch >= transform.childCount - 1)
{
weaponSwitch = 0;
}
else
{
weaponSwitch++;
}
}
if (Input.GetAxis("Mouse ScrollWheel") < 0f)
{
if (weaponSwitch = 2)
{
weaponSwitch = 1;
}
if (Input.GetKeyDown(KeyCode.Alpha3) && transform.childCount >= 3)
{
weaponSwitch = 2;
}
if (currentWeapon != weaponSwitch)
{
SelectWeapon();
}
}
void SelectWeapon()
{
int i = 0;
foreach (Transform weapon in transform)
{
if (i == weaponSwitch)
weapon.gameObject.SetActive(true);
else
weapon.gameObject.SetActive(false);
i++;
}
}
}
Спс