我正在使用OnValidate()
来帮助我加快设计过程。在下面的代码中(在OnValidate()
中),如果严格的一个敌人拥有武器并且武器是剑或长矛,我会更改所有敌人的精灵(蓝色类型)。我有两个问题:
精灵渲染器在我运行应用程序之前不会改变,尽管代码在OnValidate()
即使我运行应用程序,也不是所有的Sprite Renderers都会改变。我用Debug.Log
检查了数字,打印出正确的数字,但我一致的Sprite渲染器数量不会改变。
if (enemies.Count (x => x.hasWeapon) == 1) {
if (enemies.Count (x => x.weaponType == Enemy.WeaponType.Sword) == 1) {
for (int i = 0; i < enemies.Length; i++) {
if (enemies [i].enemyType == Enemy.EnemyType.Blue) {
Debug.Log (enemies.Length);
enemies[i].GetComponent<SpriteRenderer> ().sprite = Resources.Load<Sprite> ("Sprites/greenEnemy");
}
}
}
if (enemies.Count (x => x.weaponType == Enemy.WeaponType.Spear) == 1) {
for (int i = 0; i < enemies.Length; i++) {
if (enemies [i].enemyType == Enemy.EnemyType.Blue) {
enemies[i].GetComponent<SpriteRenderer> ().sprite = Resources.Load<Sprite> ("Sprites/blueEnemy");
}
}
}
}
我该如何解决这些问题?