Задать вопрос
@Keplers

Как убрать автоматическое удаление объекта?

Не пойму почему image создается через 2 захода, а после опять уничтожается
это начинает происходить после перезагрузки сцены. через метод:
SceneManager.LoadScene(0);
Вызов поле:
bool attack = true;
	private const string nameTag = "Player";
	private void OnCollisionStay2D(Collision2D collision)
	{
		if (collision.gameObject.CompareTag(nameTag) && attack)
		{
			attack = false;
			Life.Handler(-damage); //Вызов 
			Invoke("Attacking", 1);
		}
	}

	void Attacking() => attack = true;

Скрипт возникновения проблемы:
using UnityEngine;
using UnityEngine.UI;

public class Life : MonoBehaviour
{
	private Image image = null;
	public delegate void HandlerDelegate(float life);
	public static HandlerDelegate Handler;

	public static float Max { get; set; } = 100f;
	public static float Current { get; set; } = 100f;

	private void Start()
	{
		Debug.Log(Current);
		image = transform.GetChild(1).GetComponent<Image>();
		Handler += Operation;
		Handler += Analysis;
	}
	private void Operation(float life)
	{
		float newLife = Current + life;
		Current = newLife <= 0 ? 0 : newLife > Max ? Max : newLife;
	}

	private void Analysis(float life)
	{
		GameOver();
		//if(image != null)
		{
			Debug.Log(Current);
			image.fillAmount = Current / Max; //Ошибка. После перезагрузки сцены, каждый 3й раз происходит инициализация  без ошибки.
		}
	}

	private void GameOver()
	{
		if ((int)Current == 0)
		{
			PanelController.game.SetActive(false);
			PanelController.gameOver.SetActive(true);
		}
	}
}
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Keplers Автор вопроса
Решил проблему image сделал static.
Ответ написан
Ваш ответ на вопрос

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

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