skywoker7508 | Дата: Пятница, 06.04.2018, 11:01 | Сообщение # 1 |
Новый писатель
Группа: Пользователи
Статус: Offline
| как сделать так чтоб враг начинал стрелять только когда персонаж появляется в кадре?
using UnityEngine; using System.Collections;
public class EnemyShoot : MonoBehaviour { public float speed = 10; // скорость пули
public float fireRate = 1; //переменная для префаба пули public GameObject bullet; //задержка между выстрелами public float fireDelay; //переменная для ссылки на игрока GameObject player; public GameObject Enemy; //бинарная переменная для разрешения стрельбы bool canShoot = true; public float force;
Rigidbody2D rb; //выполнится один раз void Start () { //поиск объекта с тэгом "Player" и создание ссылки на него player = GameObject.FindWithTag ("Player");
} //выполняется каждый кадр void Update () { //проверка: есть-ли игрок в сцене и можно-ли стрелять if (canShoot && player != null) { //запрет стрельбы для следующей проверки canShoot = false; //спавн пули на позиции врага Instantiate (bullet, transform.position, Quaternion.identity); //запуск функции задержки стрельбы StartCoroutine (firePause()); } }
//старт корутины IEnumerator firePause () { //пауза исполнения на указанное время yield return new WaitForSeconds (fireDelay); //возможность стрельы при следующей проверке canShoot = true; } }
Сообщение отредактировал skywoker7508 - Суббота, 07.04.2018, 13:54 |
|
| |