Страница 1 из 1

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

СообщениеДобавлено: 04 мар 2019, 00:13
limit
помогите пожалуйста с проблемой
есть 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, а нужно что бы наносил обоим сразу

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

СообщениеДобавлено: 04 мар 2019, 00:20
Friend123
Кому обоим? Описание черти что.. что нужно-то? Вы программист или так..? Визуально задача простейшая, но я не могу суть уловить

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

СообщениеДобавлено: 05 мар 2019, 15:48
limit
еще раз попробую
есть коллайдер оружия с включенным триггером+на нем висит скрипт OnHit
есть коллайдер врага с включенным триггером+на нем висит скрипт EnemyHealth
когда коллайдер оружия сталкивается с двумя коллайдерами врага- хп отнимается только у одного противника, а нужно что б у обоих врагов сразу

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

СообщениеДобавлено: 05 мар 2019, 16:08
1max1
Я думаю дело в этом условии:
Синтаксис:
Используется csharp
nextDamage < Time.time

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

СообщениеДобавлено: 05 мар 2019, 18:24
limit
а без него он дважды наносит урон

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

СообщениеДобавлено: 05 мар 2019, 20:27
seaman
а без него он дважды наносит урон

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

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

СообщениеДобавлено: 05 мар 2019, 20:46
limit
seaman писал(а):
а без него он дважды наносит урон

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

удалил из из скрипта и проверил))

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

СообщениеДобавлено: 06 мар 2019, 00:24
seaman
Как проверил?

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

СообщениеДобавлено: 07 мар 2019, 01:04
AngryCat
seaman писал(а):Как проверил?

Ручками

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

СообщениеДобавлено: 07 мар 2019, 05:00
1max1
Изображение

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

СообщениеДобавлено: 07 мар 2019, 17:22
limit
а можно все таки помощь по теме?))

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

СообщениеДобавлено: 07 мар 2019, 19:53
seaman
Помощь:
опишите подробно - как Вы определили, что урон наносится дважды одному врагу, а не по разу каждому из врагов.

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

СообщениеДобавлено: 08 мар 2019, 10:32
limit
установил врагам максимальное здоровье 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)

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

СообщениеДобавлено: 08 мар 2019, 12:06
1max1
А ты случайно им по два скрипта не навесил?)