Пример #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;
        }
    }
Пример #2
0
 /// <summary>
 /// Disable后重置参数
 /// </summary>
 private void OnDisable()
 {
     if (isInit)
     {
         this.Caster               = null;
         this.Skill                = null;
         this.missileHitHandler    = null;
         this.specialEffectHandler = null;
         IsAlive = true;
         timer   = 0f;
         ID      = -1;
         isInit  = false;
     }
 }
Пример #3
0
 /// <summary>
 /// 对投掷物初始化。
 /// </summary>
 /// <param name="caster">投掷物的释放者</param>
 /// <param name="skill">释放投掷物的技能</param>
 /// <param name="missileHitHandler">投掷物碰撞处理方式</param>
 /// <param name="specialEffectHandler">特效创建</param>
 public void Init(Unit caster, ISkill skill, IMissileHitHandler missileHitHandler, ISpecialEffectHandler specialEffectHandler)
 {
     Init(caster, null, skill, missileHitHandler, specialEffectHandler);
 }
Пример #4
0
 /// <summary>
 /// 对投掷物初始化。
 /// </summary>
 /// <param name="caster">投掷物的释放者</param>
 /// <param name="skill">释放投掷物的技能</param>
 /// <param name="specialEffectHandler">特效创建</param>
 public void Init(Unit caster, ISkill skill, ISpecialEffectHandler specialEffectHandler)
 {
     Init(caster, null, skill, new MissileHitBasicHandler(), specialEffectHandler);
 }