C# 产卵时预设的文本游戏对象引用
我在将文本对象指定给预置时遇到问题。预制件生成后,文本对象将消失。正在尝试分配为GameObject,但无法转换为UI.TextC# 产卵时预设的文本游戏对象引用,c#,unity3d,C#,Unity3d,我在将文本对象指定给预置时遇到问题。预制件生成后,文本对象将消失。正在尝试分配为GameObject,但无法转换为UI.Text public class Enemy : MonoBehaviour { public int currentlife; GameObject enemySpawner; private float timePassed; public Text LifeNow; GameObject hpBar; Slider
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;
}
}
公共类敌人:单一行为
{
公共生活;
游戏对象敌手;
私人浮动时间已过;
现在公开文本;
游戏对象hpBar;
滑块健康条;
私有void Start()
{
enemySpawner=GameObject.FindWithTag(“产卵者”);
currentlife=12;
hpBar=GameObject.FindWithTag(“TagForSlider”);
healthBar=hpBar.GetComponent();
}
私有void更新()
{
如果(当前寿命=0.5)
{
摧毁(游戏对象);
}
}
healthBar.value=当前寿命;
LifeNow.text=“健康:”+currentlife;
}
公共空间损坏(内部损坏)
{
当前寿命-=损坏;
}
}
您有一个公共文本LifeNow变量。在使用LifeNow.text更新文本之前,需要获取预置的文本对象并将其指定给变量
e、 g.LifeNow=PREFAB.GetComponent()代码>
在回答这个问题之前,我会问你是否在评论中这样做,但是我还没有足够的代表发表评论。你有一个公共文本LifeNow变量。在使用LifeNow.text更新文本之前,需要获取预置的文本对象并将其指定给变量
e、 g.LifeNow=PREFAB.GetComponent()代码>
在回答这个问题之前,我会问你是否在评论中这样做,但是我还没有足够的代表发表评论。想知道关于这个行动的一些代码示例Unity网站有关于如何实现这一点的文档。仅供参考:获取对预置文本对象的引用没有帮助,您需要获取对实例化克隆文本对象的引用。想在此操作上获得某种代码示例Unity网站有关于如何实现此操作的文档。仅供参考:获取对预置文本对象的引用没有帮助,您需要获取对实例化克隆文本对象的引用。在预置生成后,文本对象将消失。
这是什么意思?[link]()好的,但是在生成它之前它被分配给了什么?仅仅因为某个文本对象存在于某个地方并不能告诉我任何事情。文本对象被分配给原始的“敌人”,但当我没有死亡时,产卵者使用预设创建了一个新的敌人,而没有分配文本对象。想要制作一个脚本,检查“Life Now”框是否为空,如果为空,则分配文本对象。将该字段分配给预制件自己的文本字段。当您将预置的字段指定给一个特定的派生实例时,该实例被销毁时,该引用将丢失。该预置派生后,文本对象将消失。
这是什么意思?[link]()确定,但在派生之前它被分配给了什么?仅仅因为某个文本对象存在于某个地方并不能告诉我任何事情。文本对象被分配给原始的“敌人”,但当我没有死亡时,产卵者使用预设创建了一个新的敌人,而没有分配文本对象。想要制作一个脚本,检查“Life Now”框是否为空,如果为空,则分配文本对象。将该字段分配给预制件自己的文本字段。当您将预置的字段指定给特定的派生实例时,该引用将在该实例被销毁时丢失。