Додавання стрільби і контролера ворогів в Unity

Прокрутити вниз

Додавання стрільби і контролера ворогів в Unity заняття

Додавання стрільби і контролера ворогів в Unity 🎮🔫👾

Сьогодні ти навчишся:
✅ Додавати стрільбу для гравця
✅ Створювати ворогів
✅ Робити так, щоб вороги переслідували гравця

Додавання стрільби і контролера ворогів в Unity заняття
Додавання стрільби і контролера ворогів в Unity заняття

Додавання стрільби і контролера ворогів в Unity заняття

1. Додаємо стрільбу для гравця 🔫

Крок 1: Створюємо кулю (снаряд)

1️⃣ У Hierarchy натисни Create → 3D Object → Sphere (це буде куля).
2️⃣ Назви її Bullet.
3️⃣ У Inspector натисни Add Component → Rigidbody (щоб куля рухалася).
4️⃣ Увімкни Use Gravity (зніми галочку), щоб куля не падала вниз.
5️⃣ Перетягни Bullet в папку Assets, щоб зробити з нього Prefab.
6️⃣ Видали кулю зі сцени (вона є в Assets).

Крок 2: Створюємо скрипт стрільби

1️⃣ В Assets натисни Create → C# Script.
2️⃣ Назви його PlayerShooting.
3️⃣ Відкрий скрипт і заміни код на цей:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
    public GameObject bulletPrefab; // Префаб кулі
    public Transform firePoint; // Точка, звідки вилітає куля
    public float bulletSpeed = 10f; // Швидкість кулі

    void Update()
    {
        if (Input.GetMouseButtonDown(0)) // Якщо натиснута ліва кнопка миші
        {
            Shoot();
        }
    }

    void Shoot()
    {
        GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        bullet.GetComponent<Rigidbody>().velocity = firePoint.forward * bulletSpeed;
        Destroy(bullet, 2f); // Знищуємо кулю через 2 секунди
    }
}

4️⃣ Збережи скрипт.
5️⃣ Створи порожній об’єкт в Hierarchy і назви його FirePoint.
6️⃣ Розмісти FirePoint перед гравцем (це буде місце, звідки вилітає куля).
7️⃣ Перетягни FirePoint в поле firePoint у PlayerShooting.
8️⃣ Перетягни Bullet Prefab у поле bulletPrefab.

Готово! Гравець тепер може стріляти лівою кнопкою миші!

2. Створюємо ворогів 👾

Крок 1: Додаємо ворога

1️⃣ У Hierarchy натисни Create → 3D Object → Cube (це буде ворог).
2️⃣ Назви його Enemy.
3️⃣ Додай Rigidbody (Inspector → Add Component → Rigidbody).
4️⃣ Зніми галочку з Use Gravity, щоб ворог не падав.
5️⃣ Перетягни ворога в Assets, щоб зробити Prefab.
6️⃣ Видали ворога зі сцени.

Крок 2: Скрипт переслідування гравця

1️⃣ В Assets натисни Create → C# Script.
2️⃣ Назви його EnemyAI.
3️⃣ Відкрий скрипт і заміни код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyAI : MonoBehaviour
{
    public Transform player; // Посилання на гравця
    public float speed = 3f; // Швидкість ворога

    void Update()
    {
        if (player != null)
        {
            Vector3 direction = player.position - transform.position; // Напрямок до гравця
            direction.y = 0; // Щоб ворог не підстрибував
            transform.position += direction.normalized * speed * Time.deltaTime;
        }
    }
}

4️⃣ Збережи скрипт.
5️⃣ Перетягни скрипт EnemyAI на Enemy Prefab.
6️⃣ У полі player вибери гравця (Capsule).
7️⃣ Перетягни ворога на сцену та запусти гру – тепер він переслідує гравця!

Готово! Вороги тепер самі пересуваються до гравця!

3. Робимо так, щоб ворог отримував шкоду 💥

Крок 1: Додаємо систему здоров’я ворога

1️⃣ В Assets створи новий C# Script.
2️⃣ Назви його EnemyHealth.
3️⃣ Відкрий і заміни код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyHealth : MonoBehaviour
{
    public int health = 3; // Кількість життів

    public void TakeDamage(int damage)
    {
        health -= damage;
        if (health <= 0)
        {
            Destroy(gameObject); // Знищуємо ворога
        }
    }
}

4️⃣ Перетягни цей скрипт на Enemy Prefab.

Крок 2: Додаємо шкоду від кулі

1️⃣ Відкрий PlayerShooting і зміни метод Shoot():

void Shoot()
{
    GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
    bullet.GetComponent<Rigidbody>().velocity = firePoint.forward * bulletSpeed;
    bullet.AddComponent<Bullet>(); // Додаємо скрипт до кулі
    Destroy(bullet, 2f);
}

2️⃣ Створи новий C# Script і назви його Bullet.
3️⃣ Відкрий його і додай код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour
{
    public int damage = 1; // Шкода від кулі

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Enemy")) // Якщо торкнулись ворога
        {
            other.GetComponent<EnemyHealth>().TakeDamage(damage); // Завдаємо шкоди
            Destroy(gameObject); // Видаляємо кулю
        }
    }
}

4️⃣ У Inspector у ворога додай тег “Enemy” (Tag → Add Tag → Enemy).
5️⃣ Признач ворогу цей тег.

Готово! Тепер кулі знищують ворогів! 🎯

4. Практичне завдання 🎯

🔹 Додай анімацію вибуху при знищенні ворога.
🔹 Додай звуки пострілів.
🔹 Додай систему очок (1 ворог = 10 балів).

🚀 Вітаю! Ти створив стрілянину в Unity! 🔥