Unity для начинающих
пример TakeDamage не прописан в Unity — это просто наш собственный метод, который мы сами придумали.
📌 Как понять, какие методы уже есть в Unity?
🔹 Методы, которые уже есть в Unity → это встроенные методы, такие как:
Start(),Update(),FixedUpdate()OnTriggerEnter(),OnCollisionEnter()GetComponent<T>(),Instantiate()и т. д.
🔹 Методы, которые мы сами создаем → любые методы, которые мы пишем, например:
TakeDamage(int damage)Jump()MoveForward()
📌 Почему мы пишем TakeDamage()?
📌 Unity не знает, что значит "получить урон". Нам нужно самим объяснить, что делать, когда игрок теряет здоровье.
💡 Простой пример — создадим метод TakeDamage(), который уменьшает здоровье:
using UnityEngine;
public class Player : MonoBehaviour
{
public int health = 100; // Здоровье
public void TakeDamage(int damage) // Наш метод
{
health -= damage;
Debug.Log("Игрок получил урон, осталось здоровья: " + health);
}
}
🔹 Теперь TakeDamage(int damage) уменьшает здоровье игрока.
🔹 Мы сами придумали этот метод, и Unity его не знает, пока мы не напишем.
📌 Как использовать?
В другом скрипте можно вызвать этот метод:
public class Enemy : MonoBehaviour
{
public Player player; // Ссылка на игрока
void Attack()
{
player.TakeDamage(20); // Враг наносит 20 урона игроку
}
}
📌 Теперь игрок получит урон, когда вызовется Attack().
📌 Итог:
❌ Нет, TakeDamage() не встроен в Unity.
✅ Это придуманный метод, который мы сами пишем.
✅ Если нам нужно действие (например, урон), мы пишем метод и вызываем его.