Пример #1
0
    /// <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;
        }
    }