Пятница, 26 Апреля 2024, 12:58

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [355]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [145]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [161]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [129]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Типа какой из этих игр вы предпочитаете делать игры?
Всего ответов: 16792
Главная » Статьи » Создание игр

[Unity3D]Скрипт стрельбы ч.1[C#]
Всем доброго времени суток! Это первая часть урока по созданию скрипта стрельбы на языке программирования C#.
Настраиваем сцену под скрипт:
1) Создадим сцену File -> New Scene, удаляем Main Camera, она нам не понадобится.
2) Создадим Terrain, Terrain -> Create Terrain
3) Создадим свет GameObject -> Create Other -> Directional Light
4) Импортируем asset с управляемым героем Asset -> Import Package -> Character Controller
5) Переносим First Person Controller на сцену (находится в папках Standard Asset -> Character Controller)
7) Создаём оружие (можно использовать своё, но главное: поворот оружия должен быть 0 градусов, иначе будут неисправности), удочеряем в камеру
8) Создаём пустой объект GameObject -> Create Empty, называем "Spawn", удочеряем в наше оружие, настраиваем расположение

Приступаем непосредственно к написанию скрипта:

Для начала создадим C# скрипт, для этого нажмите на Assets -> Create -> C# Script, придумаем название скрипта, например: "ShootSystem".
Открываем наш скрипт в редакторе и пишем данные переменные
Код

public int AmmoCount; // Патронов в обоймах
public int CurAmmo; // Кол-во патронов
public int Ammo; // Кол-во патронов в 1ой обойме
public AudioClip Fire; // Звук выстрела
public float ShootSpeed; // Скорострельность
public float ReloadSpeed; // Скорость перезарядки  
public AudioClip Reload; // Звук перезарядки
public float ReloadTimer = 0.0f; // Стандартное время перезарядки(не трогать)
public float ShootTimer = 0.0f; // Стандартное время выстрела(не трогать)
public Transform bullet; // Наш патрон


Далее в void Update прописываем следующее:

Код

{
  if(Input.GetMouseButtonDown(0)& CurAmmo>0 &ReloadTimer<=0 &ShootTimer<=0)
{
  Transform BulletInstance = (Transform) Instantiate(bullet, GameObject.Find("Spawn").transform.position, Quaternion.identity);
  BulletInstance.rigidbody.AddForce(transform.forward * 5000);
  CurAmmo = CurAmmo - 1;
  audio.PlayOneShot (Fire);
  ShootTimer = ShootSpeed;
}
  if(ShootTimer>0)
  {
  ShootTimer -= Time.deltaTime ;
  }
   
  {
   
  }
  if(Input.GetButtonDown("Reload"))
  {
ReloadTimer = ReloadSpeed;  
  CurAmmo = Ammo;
  audio.PlayOneShot(Reload);
  {
  if(ShootTimer>0)
  {
  ShootTimer -= Time.deltaTime;
  }
  }
  }
  }
  if(ReloadTimer>0)
  {
  ReloadTimer -= Time.deltaTime ;
  }
  {
   
  }


Далее, нам нужно создать наш патрон, это будет обычный шар(я думаю вы уже научились создавать объекты). Добавляем компонент Rigidbody и Constant Force. Создаём пустой префаб, затем перемещаем наш патрон на префаб. Теперь нам нужно перекинуть скрипт на наше оружие, настраиваем его(в строчке bullet выбираем наш префаб.) Теперь нужно настроить кнопку Reload,
нажав Edit -> Project Settings -> Input, в строчке Size добавляем ещё 1 кнопку (как известно, 15 + 1 = 16). Изменяем name на Reload, а Possitive button на желаемую кнопку. На этом всё, желаю удачи в ваших проектах.
Категория: Создание игр | Добавил: Danteo122 (21 Января 2014)
Просмотров: 65828 | Комментарии: 5 | Рейтинг: 3.6/39 |
Теги: Скрипт стрельбы, скрипт, Unity, Стрельба, 3d шутер, 3D-шутер, Unity3D, шутер, C#, U3D
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «[Unity3D]Скрипт стрельбы ч.1[C#]», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 5
+0-
5 SmilerRUS   (07 Июня 2014 22:53) [Материал]
Разъясните, пожалуйста, код. Я новичок. Особенно интересует чать кода, в которой спавнится объект.

+1-
4 Novatorvlad   (28 Января 2014 13:30) [Материал]
Novatorvladhttp://habrahabr.ru/post/112287/ в одном маленьком туторе всё, о чем вы пишите статьи и снимаете уроки. Бесполезные.

+3-
3 White9   (23 Января 2014 19:17) [Материал]
White9Не совсем ) Реализация райкастом гораздо лучше подойдёт для просчёта физики быстрой пули и автоматического оружия )

+1-
2 Novatorvlad   (23 Января 2014 12:06) [Материал]
NovatorvladРеализация стрельбы через шарики - быдлокод. Плюс подобная статья есть на хабре.

+2-
1 artor   (21 Января 2014 18:55) [Материал]
artorсмутная статейка, но за кусочек скрипта спс, одну вещь наконец понял;)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • NetGore
  • ScoreDoom
  • Open 3D Engine
  • Quake II
  • Drag[en]gine
  • NES Maker
  • Ren'Py
  • AppGameKit
  • Urho3D
  • Atomic
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг