Пятница, 29 Марта 2024, 13:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » AI
AI
alec5seiДата: Воскресенье, 20 Января 2019, 14:37 | Сообщение # 1
участник
Сейчас нет на сайте
Привет. Столкнулся с такой проблемой.
У врага есть тэг Enemy. Если расставить врагов так что бы игрок их не видел, то при убийстве одного врага уничтожаются все..
Если игрок видит двоих то они уничтожаются нормально.
Вот код пули:

Код
    public AI _AI;
    void Start () {
  _AI = GameObject.FindWithTag("Enemy").GetComponent<AI>();
    }
    void Update () {
  RaycastHit hit;

  Debug.DrawLine(lastPos, transform.position);
  if(Physics.Linecast(lastPos, transform.position, out hit))
  {
   if(hit.collider.tag != null){
    string EnemyTag = hit.collider.tag;
    switch(EnemyTag){
     case "Enemy":
      _AI.HP -= 20;
      SpawnDecal(hit, bloodHitEffect);
     break;
    }
   }
               }




drcrackДата: Воскресенье, 20 Января 2019, 16:53 | Сообщение # 2
старожил
Сейчас нет на сайте
я чето не понял как это вообще должно работать
ты в Start находишь первый попавшийся AI и сохраняешь его
какой в этом вообще смысл?
если скрипт на игроке, почему сохраняешь только 1 врага?
если скрипт на враге, опять же, зачем ты сохраняешь в него другого врага?
дальше разбирать смысла нет, тут изначально все криво
alec5seiДата: Воскресенье, 20 Января 2019, 16:59 | Сообщение # 3
участник
Сейчас нет на сайте
У меня в общем якобы из автомата вылетает (создается) обьект из префаба типо пули.
На пули висит скрипт, как раз этот который я указал в первом посте. Нужно что бы при столкновении с обьектом(тэгом) куда указан рэйкаст, пуля отнимала ХП в общем то.. Но почему то отнимает у разных.




InsaneSystemsДата: Воскресенье, 20 Января 2019, 17:08 | Сообщение # 4
участник
Сейчас нет на сайте
Попробуй так
Код

void Update ()
{
  RaycastHit hit;

  Debug.DrawLine(lastPos, transform.position);
  if(Physics.Linecast(lastPos, transform.position, out hit))
  {
   if(hit.collider.tag != null)
   {
    string EnemyTag = hit.collider.tag;
    switch(EnemyTag)
    {
     case "Enemy":
      hit.collider.GetComponent<AI>().HP -= 20;
      SpawnDecal(hit, bloodHitEffect);
      break;
    }
   }
}


А вообще, когда drcrack написал сообщение, он, наверное, хотел, чтобы ты подумал, что ты делаешь не так, а не повторно описал проблему. ;)


Сообщение отредактировал InsaneSystems - Воскресенье, 20 Января 2019, 17:22
alec5seiДата: Воскресенье, 20 Января 2019, 17:48 | Сообщение # 5
участник
Сейчас нет на сайте
Спасибо, помогло)



Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » AI
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг