/// <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); }
/// <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); }
/// <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)); }
/// <summary> /// 将 技能预警投射器的对象归还到对象池 by吴江 /// </summary> /// <param name="_indicator"></param> public void DespawnAbilityShadowEffecter(AbilityShadowEffecter _abilityShadowEffecter) { _abilityShadowEffecter.OnDespawned(); AbilityShadowEffectorPool.Return(_abilityShadowEffecter); }