Код: Выделить всё
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HealthBar : MonoBehaviour
{
[SerializeField] public HPManager hpManager;
[SerializeField] public GameObject redBar;
[SerializeField] public Slider yellowBar;
[SerializeField] private float lerpSpeed = 0.5f;
[SerializeField] private float maxHp;
[SerializeField] private float minHp = 0;
[SerializeField] private int health;
// Start is called before the first frame update
void Awake()
{
}
void Start()
{
hpManager = GameObject.Find("HurtAndHitBoxSystem").GetComponent();
hpManager = GameObject.Find("HurtAndHitBoxSystem").GetComponent();
//hpManager = transform.Find("HurtAndHitBoxSystem").GetComponent();
redBar = GameObject.Find("RedBar");
yellowBar = GameObject.Find("YellowBar").GetComponent();
maxHp = hpManager.GetPlayerHP();
// health = (float)maxHp;
}
// Update is called once per frame
void Update()
{
}
}
Есть другие классы, которые работают нормально.
Я поместил этот класс в куб на сцене и ничего, даже если он находится на вершине иерархии.
Это меня ошеломило. Есть подсказки?
Инспектор может найти объекты с необходимыми компонентами, но не делает этого после того, как я нажимаю кнопку воспроизведения. это не первый скрипт написанный таким образом и все остальные работают.
пробовал поместить код в update но ничего, как будто не может их найти,
там есть канвас на сцене, но HPManager находится на сцене игрового объекта на вершине иерархии.
да, все активно, уже на сцене до нажатия кнопки воспроизведения.
Дополнение: у HPManager нет галочки, как у любого другого компонента (физически ее нет, я не могу ее отметить). Я комментирую каждую строку, относящуюся к нему, и он волшебным образом находит все остальные объекты.>
Подробнее здесь: https://stackoverflow.com/questions/786 ... -just-fine
Мобильная версия