Проблема с Префабами

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Проблема с Префабами

Сообщение LamLan 17 фев 2019, 15:37

Здравствуйте. Для создания AI я использую префабы. Берется конкретная точка в пространстве где создаются при помощи корутины AI. Они доходят до определенной области и уничтожаются, но появилась проблема. Если данных AI много, то достаточно одному дойди до точки уничтожения, как все они уничтожаются, что логично. Ибо скрипт тот же. Через что можно реализовать уничтожение, дабы AI уничтожались по отдельности. Заранее спасибо.
LamLan
UNец
 
Сообщения: 16
Зарегистрирован: 25 июл 2018, 09:10

Re: Проблема с Префабами

Сообщение Jarico 17 фев 2019, 15:41

LamLan писал(а): Заранее спасибо.


Скрипт где? алё!

https://vk.cc/93Juhj
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Проблема с Префабами

Сообщение LamLan 17 фев 2019, 15:48

Jarico писал(а):
LamLan писал(а): Заранее спасибо.


Скрипт где? алё!

https://vk.cc/93Juhj




Извините, вот

[syntax=]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class SimpleEngine : MonoBehaviour
{
NavMeshAgent main;
Vector3 Pos2;
void Start()
{
main = GetComponent<NavMeshAgent>();
Pos2 = new Vector3(-43, 5, 0);
}
void Update()
{
main.SetDestination(Pos2);
if (GameObject.Find("Planedelete").GetComponent<TriggerDelete>().newDestroy == true)
{
Destroy(gameObject); // Само удаление!!!
}

if (GameObject.Find("PlaneLight").GetComponent<TriggerLight>().Activate == true)
{

if (GameObject.Find("TrafficLight").GetComponent<TrafficLightController>().Logistic == true)
{
main.speed = 80;

}
if (GameObject.Find("TrafficLight").GetComponent<TrafficLightController>().Logistic == false)
{
main.speed = 0;

}
}
if (GameObject.Find("PlaneLight").GetComponent<TriggerLight>().Activate == false)
{
main.speed = 80;
main.acceleration = 8;
}
}
}
[/syntax]
LamLan
UNец
 
Сообщения: 16
Зарегистрирован: 25 июл 2018, 09:10

Re: Проблема с Префабами

Сообщение Jarico 17 фев 2019, 16:34

Синтаксис:
Используется csharp
if (GameObject.Find("Planedelete").GetComponent<TriggerDelete>().newDestroy == true)
{
Destroy(gameObject); // Само удаление!!!
}
 


Чта это ващи такое? Что твой скрипт вообще делает и что ты хочешь сделать?
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Проблема с Префабами

Сообщение LamLan 17 фев 2019, 16:42

Jarico писал(а):
Синтаксис:
Используется csharp
if (GameObject.Find("Planedelete").GetComponent<TriggerDelete>().newDestroy == true)
{
Destroy(gameObject); // Само удаление!!!
}
 


Чта это ващи такое? Что твой скрипт вообще делает и что ты хочешь сделать?





Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerDelete : MonoBehaviour
{

    [SerializeField] internal bool newDestroy;
   
        void OnTriggerEnter(Collider other)

    {
        newDestroy = true;

       
    }

    void OnTriggerExit(Collider other)

    {
        newDestroy = false;

       
    }



    void Start()
    {
       
    }

   
    void Update()
    {
       
    }
}
 


Когда мои префабы проезжают конкретную область, то они уничтожаются.
LamLan
UNец
 
Сообщения: 16
Зарегистрирован: 25 июл 2018, 09:10

Re: Проблема с Префабами

Сообщение Friend123 17 фев 2019, 17:00

Что может быть примитивнее - попал в OnCollisionEnter или в OnTriggerEnter запустил метод Destroy(gameobject)?!
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Проблема с Префабами

Сообщение LamLan 17 фев 2019, 17:09

Friend123 писал(а):Что может быть примитивнее - попал в OnCollisionEnter или в OnTriggerEnter запустил метод Destroy(gameobject)?!

Не совсем понял, сарказм шоль? Я использую метод удаления, но он удаляет все одинаковые префабы которые есть на сцене. Мне же нужно, чтобы удалялся 1.
LamLan
UNец
 
Сообщения: 16
Зарегистрирован: 25 июл 2018, 09:10

Re: Проблема с Префабами

Сообщение Friend123 17 фев 2019, 17:33

Ну, оно?
Синтаксис:
Используется csharp
void OnTriggerEnter(Collider obj) {
    Destroy(obj.gameObject);
}
 
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Проблема с Префабами

Сообщение Jarico 17 фев 2019, 18:09

Код можно упростить в 10 раз

в скрипте который на триггере висит сделай проверку на наличие компонента NavMeshAgent и делай Destroy... При контакте триггер вызывает метод OnTriggerEnter и даёт в качестве аргумента ссылочку на объект который вошёл в его область
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12