Example #1
0
    /// <summary>
    /// 从对象池中取出技能预警投射器的对象 by吴江
    /// </summary>
    /// <param name="_pos"></param>
    /// <param name="_rot"></param>
    /// <returns></returns>
    public AbilityShadowEffecter SpawnAbilityShadowEffecter(Vector3 _pos, float _rotY, float _wid, float _length, AlertAreaType _type, Color _color, float _duration)
    {
        AbilityShadowEffecter abilityShadowEffecter = AbilityShadowEffectorPool.Request(_pos);

        abilityShadowEffecter.OnSpawned(_type, _color, _rotY, _wid, _length, _duration);
        return(abilityShadowEffecter);
    }
Example #2
0
    /// <summary>
    /// 从对象池中取出技能预警投射器的对象 by吴江
    /// </summary>
    /// <param name="_pos"></param>
    /// <param name="_rot"></param>
    /// <returns></returns>
    public AbilityShadowEffecter SpawnAbilityShadowEffecter(Transform _parent, float _rotY, float _wid, float _length, AlertAreaType _type, Color _color, float _duration)
    {
        AbilityShadowEffecter abilityShadowEffecter = AbilityShadowEffectorPool.Request(Vector3.zero);

        abilityShadowEffecter.transform.parent        = _parent;
        abilityShadowEffecter.transform.localPosition = new Vector3(0, 10.0f, 0);
        abilityShadowEffecter.OnSpawned(_type, _color, _rotY, _wid, _length, _duration);
        return(abilityShadowEffecter);
    }
Example #3
0
 /// <summary>
 /// 使用技能 by吴江
 /// </summary>
 public virtual void UseAbility(AbilityInstance _instance)
 {
     if (IsSilent && _instance.thisSkillMode == SkillMode.CLIENTSKILL)
     {
         return;                                                                      //客户端技能 沉默了才不能放
     }
     if (moveFSM != null && moveFSM.isMovingTo)
     {
         moveFSM.StopMovingTo();
     }
     curTryUseAbility = _instance;
     if (abilityShadowEffecter != null)
     {
         GameCenter.spawner.DespawnAbilityShadowEffecter(abilityShadowEffecter);
     }
     if (_instance == null)
     {
         return;
     }
     if (_instance.HasWarnning && _instance.NeedPrepare && !_instance.HasServerConfirm)
     {
         Vector3 pos = ActorMoveFSM.LineCast(_instance.WarnningPos, !isDummy);
         pos = pos.SetY(pos.y + 10.0f);
         abilityShadowEffecter = GameCenter.spawner.SpawnAbilityShadowEffecter(pos, _instance.warnningDir, _instance.WarnningWidth,
                                                                               _instance.WarnningLength, _instance.WarnningType, abilityWarnningColor, _instance.WarnningTime);
     }
     if (animFSM != null)
     {
         animFSM.Cast(_instance);
     }
     if (_instance.DirTurnType == TurnType.TURN)
     {
         FaceToNoLerp(_instance.DirY);
     }
     if (_instance.SkillReportID != 0)
     {
         GameCenter.messageMng.AddClientMsg(_instance.SkillReportID);
     }
     //StartCoroutine(DoAbilityHitEffect(_instance.BlinkLateTime / 1000f));
 }
Example #4
0
 /// <summary>
 /// 将 技能预警投射器的对象归还到对象池 by吴江
 /// </summary>
 /// <param name="_indicator"></param>
 public void DespawnAbilityShadowEffecter(AbilityShadowEffecter _abilityShadowEffecter)
 {
     _abilityShadowEffecter.OnDespawned();
     AbilityShadowEffectorPool.Return(_abilityShadowEffecter);
 }