using System.Collections; using System.Collections.Generic; using UnityEngine; public class Huo : MonoBehaviour { public Role Crole; // 角色对象,用来扣血 public Bullet bullet; // 子弹脚本 private float lastDamageTime = 0; // 上一次扣血的时间 private float lastDamageAllTime = 0; // 上一次灼烧效果的总时间 [Header("灼烧扣血间隔")] public float attackTime; // 扣血的间隔时间 [Header("灼烧总时间")] public float attackAllTime = 3; // 扣血的持续时间 [Header("火焰消失时间")] public float lifeTime = 5f; // 火焰的持续时间,默认 5 秒 private float spawnTime; // 记录火焰生成的时间 void Start() { Debug.Log("-------------------------"); spawnTime = Time.time; // 记录火焰对象的生成时间 } void Update() { // 判断是否超过火焰存在的最大时间 if (Time.time - spawnTime > lifeTime) { Destroy(gameObject); // 超过时间后销毁物体 return; // 直接返回,不再执行后面的灼烧逻辑 } // 这里可以加上灼烧的具体逻辑,比如伤害的扣除等 if (Crole != null && bullet != null) { // 进行灼烧扣血操作 if (Time.time - lastDamageAllTime > attackAllTime || lastDamageAllTime == 0) { if (Time.time - lastDamageTime > attackTime || attackTime == 0) { // 执行伤害逻辑 // Crole.bloodLoss(new object[] { Crole, bullet.role.Attack + bullet.bulletData.attack, bullet.attackObj.damageTyp, bullet.role }); Debug.Log("灼烧扣血"); lastDamageTime = Time.time; } lastDamageAllTime = Time.time; } } } }