【发布时间】:2015-08-11 02:23:41
【问题描述】:
这个精灵:
应该变成这些精灵之一(取决于加载的精灵)
当碰撞器 (LoseCollider) 接触到不同的游戏对象时:
我的问题是当 LoseCollider 被触发时,Spite 没有改变,也没有向我抛出任何错误。
相关代码为:
HealthManager.cs
public static Sprite[] healthSprites;
public static int totalHealth = 3;
public static Sprite Health1;
public static Sprite Health2;
public static Sprite Health3;
LoseCollider.cs
void OnTriggerEnter2D (Collider2D trigger) {
if (HealthManager.totalHealth == 3) {
setSprite();
HealthManager.totalHealth --;
} else {
levelManager = GameObject.FindObjectOfType<LevelManager>();
levelManager.LoadLevel("Lose");
}
}
void setSprite () {
gameObject.GetComponent<SpriteRenderer>().sprite = HealthManager.Health2;
}
我试图发布所有相关信息,如果我需要包含更多信息,请告诉我。
【问题讨论】:
-
你确定
setSprite被调用了吗?你确定HealthManager.Health2确实与 Health2 sprite 相关联,而不是 Health3 或其他什么? -
setSprite 被调用(我省略了方法中的打印语句)。根据我所读到的(不是不到一年的编程经验的专家)这一行:gameObject.GetComponent
().sprite = HealthManager.Health2;应该调用health2。我不确定如何检查链接 -
“应该调用health2”是什么意思?你的 Health2 精灵是否真的与 HealthManager 对象上的“public static Sprite Health2”相关联?
-
我在它们静止之前将它们连接到检查器中(我尝试了一种不同的方法来使其工作)但在使它们成为静态后检查器不提供连接。