GameCom
Меню сайта
Категории раздела
Разработка игр [3]
Статьи об общих понятиях связанных с созданием игр.
Движки и Гейммейкеры [1]
Статьи о программах для создания игр, уроки и описания.
Программирование [0]
Гайды по программированию на разных ЯП.
Софт [0]
Различные программы, в том числе в помощь игроделам.
Моддинг игр [0]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Разное [0]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой из конструкторов лучшее
Всего ответов: 22
Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Разработка игр

[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 на желаемую кнопку. На этом всё, желаю удачи в ваших проектах.

Категория: Разработка игр | Добавил: Com-Lan (01.06.2014) | Автор: Danteo122 E W
Просмотров: 4537 | Комментарии: 13 | Теги: Unity3DСкрипт стрельбы ч.1C# | Рейтинг: 5.0/1
Всего комментариев: 1
1 larotta8530  
0
Nice webpage https://colard.ru/

Имя *:
Email *:
Код *:
Форма входа
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024Конструктор сайтов - uCoz