@Z_programist

Почему не работает SetActive() в Unity?

Здраствуйте, у меня проблема: Дело в том, что на моем персонаже есть скрипт Playerattack, и он так выглядит:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Playerattack : MonoBehaviour
{
    public float attackTime;
    public float startTimeAttack;

    public GameObject attack;

    private void Start()
    {
        attack.gameObject.SetActive(false);
    }

    void Update()
    {
        if(attackTime <= 0)
        {
            if(Input.GetKeyDown(KeyCode.E))
            {
                Debug.Log("start time");
                attack.gameObject.SetActive(true);
                attackTime = startTimeAttack;
            }
        }
        else if(attackTime > 0)
        {
            attackTime -= Time.deltaTime;
            Debug.Log("stop time");
            attack.gameObject.SetActive(false);
        }
      
    }
}

Когда значение переменной attackTime меньше или ровно нулю, то при нажатии кнопки E должно писатся сообщение в консоль "start time" и должен включатся объект в переменной attack, в этой переменной находится дочерний объект centre. Скрип в самом оъекте:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AttackScript : MonoBehaviour
{
    public void OnTriggerStay2D(Collider2D other)
    {
        if(other.tag == "enemy")
        {
            Debug.Log("Damage was dealt!");
        }
    }
}

То-есть когда он активируется и касается объекта с тэгом "enemy", он должен писать в консоль "Damage was dealt!".

Но дело в том, что при нажатии на E в консоль пишется "start time", но при этом сам объект centre не включается. Но сам обьект centre при косании с объектом с тэгом "enemy" печатает в консоль "Damage was dealt!", то-есть он работает.
Я не понимаю почему оба скрипта по идее работают нормально, но при этом обьект centre не включается
  • Вопрос задан
  • 611 просмотров
Пригласить эксперта
Ответы на вопрос 1
NikS42
@NikS42
Unity developer
Update не вызывается на отключенном объекте. Равно как коллизия, физика и аниматор
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы