/// <summary> /// 对投掷物初始化。 /// </summary> /// <param name="caster">投掷物的释放者</param> /// <param name="enemy">敌方目标,即投掷物的追踪对象</param> /// <param name="skill">释放投掷物的技能</param> /// <param name="missileHitHandler">投掷物碰撞处理方式</param> /// <param name="specialEffectHandler">特效创建</param> public void Init(Unit caster, Unit enemy, ISkill skill, IMissileHitHandler missileHitHandler, ISpecialEffectHandler specialEffectHandler) { lock (this) { if (isInit) { return; } this.Caster = caster; this.Enemy = enemy; this.enemyTrans = enemy == null ? null : enemy.transform; this.Skill = skill; this.Damage = skill.Data.Damage; this.HP = skill.Data.MissileHP; this.missileHitHandler = missileHitHandler; this.specialEffectHandler = specialEffectHandler; ID = Gamef.MissileBirth(this); if (enemy != null) { trackSystem?.StartTracking(enemy, skill.Data.TrackingConst); } isInit = true; } }