| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class BaGua_LiGua : MonoBehaviour
- {
- public float intervalTime; //造成伤害的间隔时间
- public int damage; //造成的伤害
- public List<MoveCharacter> moveCharacrters = new List<MoveCharacter>(); //被造成伤害的角色
- public float totalTime; //多少时间后消失
- [HideInInspector]public float time; //经过的时间
- private void Update()
- {
- time += Time.deltaTime;
- if (time >= totalTime)
- {
- gameObject.SetActive(false);
- }
- }
- private void OnTriggerEnter(Collider other)
- {
- BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
- if (beHitTrigger != null)
- {
- if (other.gameObject.layer == 8 || other.gameObject.layer == 16 || other.gameObject.layer == 10)
- {
- MoveCharacter character = other.GetComponentInParent<MoveCharacter>();
- moveCharacrters.Add(character);
- character.sustainedInjuryTime = intervalTime;
- character.sustainedInjury_IntervalTime = intervalTime;
- character.sustainedInjury_damage = damage;
- character.isSustainedInjury = true;
- }
- }
- }
- private void OnTriggerExit(Collider other)
- {
- BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
- if (beHitTrigger != null)
- {
- if (other.gameObject.layer == 8 || other.gameObject.layer == 16)
- {
- MoveCharacter character = other.GetComponentInParent<MoveCharacter>();
- if (moveCharacrters.Exists(i => i == character))
- {
- character.isSustainedInjury = false;
- moveCharacrters.Remove(character);
- }
- }
- }
- }
- private void OnDisable()
- {
- for(int i= 0; i < moveCharacrters.Count; i++)
- {
- moveCharacrters[i].isSustainedInjury = false;
- }
- }
- }
|