public void CreateCharacter(Vector3 startPosition, CharacterDataBean characterData) { GameObject objModel = null; if (characterData.characterType == CharacterTypeEnum.Player) { objModel = objCharacterPlayerModel; } else if (characterData.characterType == CharacterTypeEnum.Enemy) { objModel = objCharacterEnemyModel; } GameObject objCharacter = Instantiate(gameObject, objModel, startPosition); CharacterCpt characterCpt = objCharacter.GetComponent <CharacterCpt>(); characterCpt.SetCharacterData(characterData); if (characterData.characterType == CharacterTypeEnum.Player) { listPlayer.Add(characterCpt); } else if (characterData.characterType == CharacterTypeEnum.Enemy) { listEnemy.Add(characterCpt); } }
public void OnTriggerEnter(Collider other) { CharacterCpt characterCpt = other.GetComponent <CharacterCpt>(); if (characterCpt) { //不可以攻击自己人 CharacterDataBean characterData = characterCpt.GetCharacterData(); if (characterData.characterType == this.characterType) { return; } //死人不攻击 if (characterData.life <= 0) { return; } characterCpt.AddLife(-bulletDamage, out bool isDead); //如果死亡 if (isDead) { //炸飞 characterCpt.BlowUp(transform.position); } else { //没死的话展示生命值 characterCpt.ShowLife(3); } } }
public void RefreshEnemyCharacter() { for (int i = 0; i < listEnemy.Count; i++) { CharacterCpt characterItem = listEnemy[i]; characterItem.RefreshCharacter(); } }
public void RefreshPlayerCharacter() { for (int i = 0; i < listPlayer.Count; i++) { CharacterCpt characterItem = listPlayer[i]; characterItem.RefreshCharacter(); } }
public void SetCharacterSpeedUp(CharacterTypeEnum characterType, float addSpeed, float time) { List <CharacterCpt> listCharacter = manager.GetCharacterByType(characterType); for (int i = 0; i < listCharacter.Count; i++) { CharacterCpt itemCharacter = listCharacter[i]; itemCharacter.SetCharacterSpeedUp(addSpeed, time); } }
public void AddCharacterSpeed(CharacterTypeEnum characterType, float addSpeed) { List <CharacterCpt> listCharacter = manager.GetCharacterByType(characterType); for (int i = 0; i < listCharacter.Count; i++) { CharacterCpt itemCharacter = listCharacter[i]; itemCharacter.AddCharacterSpeed(addSpeed); } }
/// <summary> /// 设置角色生命值 /// </summary> /// <param name="characterType"></param> /// <param name="maxLife"></param> public void SetCharacterLife(CharacterTypeEnum characterType, int maxLife) { List <CharacterCpt> listCharacter = manager.GetCharacterByType(characterType); for (int i = 0; i < listCharacter.Count; i++) { CharacterCpt itemCharacter = listCharacter[i]; itemCharacter.SetLife(maxLife); } }
/// <summary> /// 清除NPC /// </summary> /// <param name="characterCpt"></param> public void CleanCharacter(CharacterCpt characterCpt) { CharacterDataBean characterData = characterCpt.GetCharacterData(); if (characterData.characterType == CharacterTypeEnum.Player) { listPlayer.Remove(characterCpt); } else if (characterData.characterType == CharacterTypeEnum.Enemy) { listEnemy.Remove(characterCpt); } }
/// <summary> /// 清除所有NPC /// </summary> public void CleanAllCharacter() { for (int i = 0; i < listPlayer.Count; i++) { CharacterCpt characterItem = listPlayer[i]; Destroy(characterItem.gameObject); } for (int i = 0; i < listEnemy.Count; i++) { CharacterCpt characterItem = listEnemy[i]; Destroy(characterItem.gameObject); } listPlayer.Clear(); listEnemy.Clear(); }
public void CleanCharacter(CharacterCpt characterCpt) { manager.CleanCharacter(characterCpt); }