Unity не находит объект на сцене, другие скрипты справляются нормальноC#

Место общения программистов C#
Ответить
Anonymous
 Unity не находит объект на сцене, другие скрипты справляются нормально

Сообщение Anonymous »

Код: Выделить всё


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()
{

}
}
ни компонент слайдера, ни игровой объект панели, ни скрипт hpManager, ничего. другие сценарии не создают экземпляров, они появляются на сцене до того, как я нажимаю кнопку воспроизведения, он просто отказывается делать все, что ему говорят.
Есть другие классы, которые работают нормально.
Я поместил этот класс в куб на сцене и ничего, даже если он находится на вершине иерархии.
Это меня ошеломило. Есть подсказки?
Инспектор может найти объекты с необходимыми компонентами, но не делает этого после того, как я нажимаю кнопку воспроизведения. это не первый скрипт написанный таким образом и все остальные работают.
пробовал поместить код в update но ничего, как будто не может их найти,
там есть канвас на сцене, но HPManager находится на сцене игрового объекта на вершине иерархии.
да, все активно, уже на сцене до нажатия кнопки воспроизведения.
Дополнение: у HPManager нет галочки, как у любого другого компонента (физически ее нет, я не могу ее отметить). Я комментирую каждую строку, относящуюся к нему, и он волшебным образом находит все остальные объекты.>

Подробнее здесь: https://stackoverflow.com/questions/786 ... -just-fine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»