Advertisement
Norgad

Lesson4

Dec 22nd, 2024
23
0
6 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.77 KB | Source Code | 0 0
  1. Player.cs
  2.  
  3.  
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7.  
  8. public class Player : MonoBehaviour
  9. {
  10.     //Здоровье игрока
  11.     private int health = 10;
  12.  
  13.     //Число собранных монет
  14.     private int coins;
  15.  
  16.     //Префаб огненного шара и параметр Transform точки атаки
  17.     public GameObject fireballPrefab;
  18.     public Transform attackPoint;
  19.  
  20.  
  21.     //Метод, понижающий здоровье игрока
  22.     public void TakeDamage(int damage)
  23.     {
  24.         health -= damage;
  25.         print("Здоровье игрока: " + health);
  26.     }
  27.  
  28.     //Метод, увеличивающий число монеток
  29.     public void CollectCoins()
  30.     {
  31.         coins++;
  32.         print("Собранные монетки: " + coins);
  33.     }
  34.  
  35.  
  36.     void Update()
  37.     {
  38.  
  39.         //Если игрок кликает левой кнопкой мыши, то создаётся огненный шар
  40.         if (Input.GetMouseButtonDown(0))
  41.         {
  42.             Instantiate(fireballPrefab, attackPoint.position, attackPoint.rotation);
  43.         }
  44.  
  45.     }
  46. }
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Enemy.cs
  54.  
  55. using System.Collections;
  56. using System.Collections.Generic;
  57. using UnityEngine;
  58.  
  59. public class Enemy : MonoBehaviour
  60. {
  61.     //Скорость движения врага
  62.     public float speed;
  63.  
  64.     //Цель, к которой движется враг
  65.     public Transform target;
  66.  
  67.     //Очки урона от атаки врагом игрока
  68.     public int playerDamage = 2;
  69.  
  70.  
  71.     void Update()
  72.     {
  73.         //Меняет каждый кадр позицию NPC на новую
  74.         transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
  75.  
  76.         //Разворачивает каждый кадр NPC лицом к цели
  77.         transform.LookAt(target.position);
  78.     }
  79.  
  80.     //При столкновении врага с игроком второму наносится урон
  81.     private void OnTriggerEnter(Collider other)
  82.     {
  83.         Player player = other.GetComponent<Player>();
  84.         player.TakeDamage(playerDamage);
  85.     }
  86. }
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. Coin.cs
  94.  
  95. using System.Collections;
  96. using System.Collections.Generic;
  97. using UnityEngine;
  98.  
  99. public class Coin : MonoBehaviour
  100. {
  101.     void OnTriggerEnter(Collider other) {
  102.  
  103.         Player player = other.GetComponent<Player>();
  104.  
  105.         //Количество монеток обновляется
  106.         player.CollectCoins();
  107.  
  108.         //Монетка, которую собрали, уничтожается
  109.         Destroy(gameObject);
  110.     }
  111.  
  112. }
  113.  
  114.  
  115.  
  116.  
  117.  
  118. Missile.cs
  119.  
  120. using System.Collections;
  121. using System.Collections.Generic;
  122. using UnityEngine;
  123.  
  124. public class Missile : MonoBehaviour
  125. {
  126.     //Скорость полёта огненного шара
  127.     public float speed;
  128.  
  129.     void Update()
  130.     {
  131.        //Клон огненного шара уничтожается через 3 секунды
  132.         Destroy(gameObject, 3);
  133.  
  134.           //Каждый кадр позиция шара обновляется на произведение вектора движения вперёд (0,0,1),
  135.         //скорости движения шара и значение разницы в секундах между последним и текущим кадрами
  136.  
  137.         transform.position += transform.forward * speed * Time.deltaTime;
  138.     }
  139.  
  140.     void OnTriggerEnter(Collider other) {
  141.  
  142.         //Враг уничтожается
  143.         Enemy enemy = other.GetComponent<Enemy>();
  144.         Destroy(enemy.gameObject);
  145.  
  146.         //Снаряд уничтожается
  147.         Destroy(gameObject);
  148.  
  149.     }
  150.  
  151. }
  152.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement