Итак, я разрабатывал 2D платформерную игру на C # и Unity, и как часть игры я разрабатывал бонусы.Один из них в непобедимости, поэтому, когда игрок сталкивается с игровым объектом, они не могут быть убиты в течение определенного периода времени.Я относительно новичок в Unity и C # и прочитал, что могу использовать «.enabled», чтобы включить / отключить внешний скрипт, который присоединен к тому же объекту.Однако, когда я активирую powerup, объект уничтожается, но если я сталкиваюсь с врагом или объектом, я все равно умираю.Может кто-нибудь увидеть, почему это происходит.
Ниже приведен сценарий, который я разработал.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InvincibilityPowerup : MonoBehaviour
{
public int Duration = 15;
void OnTriggerEnter2D(Collider2D coll)
{
if (coll.gameObject.tag == "Shield")
{
Destroy(GameObject.Find("Invincibility"));
StartCoroutine("Invincible");
}
}
IEnumerator Invincible()
{
Collision pIn = gameObject.GetComponent<Collision>();
pIn.enabled = false;
yield return new WaitForSeconds(Duration);
pIn.enabled = true;
}
}