столкновение триггеров

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

столкновение триггеров

Сообщение limit 04 мар 2019, 00:13

помогите пожалуйста с проблемой
есть 3 объекта с коллайдером и включенным триггером.
на одном(onHit) висит скрипт
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class onHit : MonoBehaviour
{
    public float damage;
    public float damageRate;

    float nextDamage;


    void Start()
    {
        nextDamage = 0f;
    }

    void Update()
    {
    }
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Enemy" && nextDamage < Time.time)
        {
            enemyHealth theEnemyHealth = other.gameObject.GetComponent<enemyHealth>();
            theEnemyHealth.addDamage(damage);

            Debug.Log(transform.name + " наносит " + damage + " ед. урона.");
            nextDamage = Time.time + damageRate;
        }
    }

}


на двух других(enemyHealth)

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class enemyHealth : MonoBehaviour
{
    private PlayerEXP thePlayerExp;
    public int expToGive;


    public float enemyMaxHeath;
    public GameObject enemyDeathFX;
    public Slider enemySlider;

    float currentHeath;

    void Start()
    {
        thePlayerExp = FindObjectOfType<PlayerEXP>();

        currentHeath = enemyMaxHeath;
        enemySlider.maxValue = currentHeath;
        enemySlider.value = currentHeath;
    }

    void Update()
    {
    }
    public void addDamage(float damage)
    {
        currentHeath -= damage;
        enemySlider.value = currentHeath;
        if (currentHeath <= 0) makeDead();
    }

    void makeDead()
    {
        thePlayerExp.AddExp(expToGive);

        Destroy(gameObject);
        Instantiate(enemyDeathFX, transform.position, transform.rotation);
    }
}
 

оба enemyHealth находятся в зоне действия onHit, но проблема в том что onHit наносит урон только одному из enemyHealth, а нужно что бы наносил обоим сразу
Последний раз редактировалось limit 04 мар 2019, 08:52, всего редактировалось 1 раз.
limit
UNец
 
Сообщения: 26
Зарегистрирован: 15 сен 2017, 00:11

Re: столкновение триггеров

Сообщение Friend123 04 мар 2019, 00:20

Кому обоим? Описание черти что.. что нужно-то? Вы программист или так..? Визуально задача простейшая, но я не могу суть уловить
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: столкновение триггеров

Сообщение limit 05 мар 2019, 15:48

еще раз попробую
есть коллайдер оружия с включенным триггером+на нем висит скрипт OnHit
есть коллайдер врага с включенным триггером+на нем висит скрипт EnemyHealth
когда коллайдер оружия сталкивается с двумя коллайдерами врага- хп отнимается только у одного противника, а нужно что б у обоих врагов сразу
limit
UNец
 
Сообщения: 26
Зарегистрирован: 15 сен 2017, 00:11

Re: столкновение триггеров

Сообщение 1max1 05 мар 2019, 16:08

Я думаю дело в этом условии:
Синтаксис:
Используется csharp
nextDamage < Time.time
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: столкновение триггеров

Сообщение limit 05 мар 2019, 18:24

а без него он дважды наносит урон
limit
UNец
 
Сообщения: 26
Зарегистрирован: 15 сен 2017, 00:11

Re: столкновение триггеров

Сообщение seaman 05 мар 2019, 20:27

а без него он дважды наносит урон

С чего Вы так решили?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: столкновение триггеров

Сообщение limit 05 мар 2019, 20:46

seaman писал(а):
а без него он дважды наносит урон

С чего Вы так решили?

удалил из из скрипта и проверил))
limit
UNец
 
Сообщения: 26
Зарегистрирован: 15 сен 2017, 00:11

Re: столкновение триггеров

Сообщение seaman 06 мар 2019, 00:24

Как проверил?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: столкновение триггеров

Сообщение AngryCat 07 мар 2019, 01:04

seaman писал(а):Как проверил?

Ручками
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: столкновение триггеров

Сообщение 1max1 07 мар 2019, 05:00

Изображение
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: столкновение триггеров

Сообщение limit 07 мар 2019, 17:22

а можно все таки помощь по теме?))
limit
UNец
 
Сообщения: 26
Зарегистрирован: 15 сен 2017, 00:11

Re: столкновение триггеров

Сообщение seaman 07 мар 2019, 19:53

Помощь:
опишите подробно - как Вы определили, что урон наносится дважды одному врагу, а не по разу каждому из врагов.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: столкновение триггеров

Сообщение limit 08 мар 2019, 10:32

установил врагам максимальное здоровье 10, урон персонажа поставил 4, атакую 2х врагов 1 раз, их здоровье становится у каждого 2единицы
к тому же это видно в консоли
attackTrigger наносит 4 ед. урона.
UnityEngine.Debug:Log(Object)
attackTrigger наносит 4 ед. урона.
UnityEngine.Debug:Log(Object)
attackTrigger наносит 4 ед. урона.
UnityEngine.Debug:Log(Object)
attackTrigger наносит 4 ед. урона.
UnityEngine.Debug:Log(Object)
limit
UNец
 
Сообщения: 26
Зарегистрирован: 15 сен 2017, 00:11

Re: столкновение триггеров

Сообщение 1max1 08 мар 2019, 12:06

А ты случайно им по два скрипта не навесил?)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


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

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

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