我在给prefab分配一个文本对象时遇到了问题。在预置生成后,文本对象就消失了。我一直尝试将其赋值为GameObject,但无法转换为UI.Text
public class Enemy : MonoBehaviour
{
public int currentlife;
GameObject enemySpawner;
private float timePassed;
public Text LifeNow;
GameObject hpBar;
Slider healthBar;
private void Start()
{
enemySpawner = GameObject.FindWithTag("Spawner");
currentlife = 12;
hpBar = GameObject.FindWithTag("TagForSlider");
healthBar = hpBar.GetComponent<Slider>();
}
private void Update()
{
if (currentlife <= 0)
{
this.GetComponent<Animator>().SetTrigger("death");
GameObject.Find(gameObject.name + ("spawn point")).GetComponent<Respawn>().Death = true;
timePassed += Time.deltaTime;
if (timePassed >= 0.5)
{
Destroy(gameObject);
}
}
healthBar.value = currentlife;
LifeNow.text = "Health: " + currentlife;
}
public void TakeDamage(int damage)
{
currentlife -= damage;
}
}
发布于 2019-06-04 05:36:44
您有一个公共文本LifeNow变量。在使用LifeNow.text更新文本之前,您需要获取预置的文本对象并将其赋值给变量
例如LifeNow = PREFAB.GetComponent<Text>();
在给出这个答案之前,我会问你是否在评论中这样做,但是我还没有足够的代表来发表评论。
https://stackoverflow.com/questions/56434733
复制相似问题