private void SetTarget(Collider2D other) { ShootSkill.SaveTarget(_camp, other.transform); // 可能调用时敌人被消灭,不能调用协程取消锁定, 或当协程还未执行完时,敌人被消灭,也不能取消子弹锁定, 所有用GameManager的方法开启协程 // StartCoroutine(UnSetTarget(other)); GameManager.Instance.StartCoroutine(UnSetTarget(other)); }
public void UpdatePlayerCharacterInfo() { CharactersData.CharacterInfo info = characterDataHolder.GetCharacterInfo(playerDataHolder.selectedCharacterId); playerCharacterInfo.character.UpdateCharacter((int)info.id, info.level); CharacterTableSet.CharacterTable charTable = charTableSet.GetCharacterTable(info.id); CharacterTableSet.CharacterShopLevelTable levelInfo = charTable.GetLevelInfo(info.level); if (info.level < charTable.maxLevel) { playerCharacterInfo.levelObject.SetActive(true); playerCharacterInfo.levelMaxObject.SetActive(false); playerCharacterInfo.level.text = levelInfo.level.ToString(); playerCharacterInfo.levelSlider.sliderValue = (float)levelInfo.level / charTable.maxLevel; } else { playerCharacterInfo.levelObject.SetActive(false); playerCharacterInfo.levelMaxObject.SetActive(true); } playerCharacterInfo.nameLabel.text = TextTableSet.GetText_(charTable.nameIndex); ShootSkill skillInfo = (ShootSkill)SkillFactory.Instance.GetSkillInfo(charTable.GetIngameLevelInfo(levelInfo.level).shootSkillId); playerCharacterInfo.weaponTexture.mainTexture = Resources.Load(string.Format("Bullet/icon/{0}", skillInfo.resourceName)) as Texture; for (int i = 0; i < playerCharacterInfo.heartsObject.Length; i++) { playerCharacterInfo.heartsObject[i].SetActive(i < levelInfo.healthPoint); } }
// 当敌机被歼灭时或超过引导时间,取消引导 IEnumerator UnSetTarget(Collider2D target) { float time = 0f; while (time < signalTime) { yield return(null); time += Time.deltaTime; if (!target.gameObject.activeInHierarchy) { break; } } ShootSkill.SaveTarget(_camp, null); }