using UnityEngine; using System.Collections; namespace YLBattle { /// /// 技能释放(子弹生成) /// public partial class SkillControl : MonoBehaviour { /// /// 子弹创建 /// /// 子弹隶属对象编号 /// 实例ID /// 模板ID public void BulletLoad(BulletLoadParam param) { createProjectile(param); } /// /// 检测指定子弹是否创建完成 /// /// 子弹编号 /// true创建成功, false创建失败 public bool BulletLoadComplete(string id) { return ProjectileBases.ContainsKey(id); } /// /// 子弹发射. /// /// 子弹唯一标示符 /// 子弹位置目标类型 /// 子弹目标参数(目标ID) public void BulletLaunch(string id, EBulletTargeType type, object param) { ///目标型子弹 string targetID = param as string; /** * 打击指定目标角色 type=1; */ Fighter target = FightingManager.Instance.GetFighter(targetID);//获取目标对象 if (target == null && type == EBulletTargeType.EBULLET_TARGET_FIGHTER) { LogHelper.LogError("BulletLaunch.targetId=" + targetID + " 未找到指定目标"); return; } Vector3 targetPos = Vector3.zero; ProjectileBase _bulletData = null; if (type == EBulletTargeType.EBULLET_TARGET_FIGHTER) { ///根据id获取子弹对象 if (ProjectileBases.ContainsKey(id)) { _bulletData = ProjectileBases[id]; switch (_bulletData.bulletLoadParam.hitpoint) { case EBulletHitPointType.EBULLET_HITPOINT_NORMAL: targetPos = target.mBodyCenterPos; break; case EBulletHitPointType.EBULLET_HITPOINT_DOWN: targetPos = target.mBodyRootPos; break; } } } /** * aimparm!=0 */ switch (type) { case EBulletTargeType.EBULLET_TARGET_FIGHTER: createSkillShoot(id, targetPos, targetID, false, (int)type); break; case EBulletTargeType.EBULLET_TARGET_MAP: if (_bulletData != null) { if (_bulletData.bulletLoadParam.team == EBattleTeam.BLUETEAM) { targetPos = this.mUICenter; } else { targetPos = WorldToGUI(FightingMap.Instance.MapPos); } } createSkillShoot(id, targetPos, targetID, true, (int)type); break; case EBulletTargeType.EBULLET_TARGET_SCREEN: if (_bulletData != null) { if (_bulletData.bulletLoadParam.team == EBattleTeam.BLUETEAM) { targetPos = this.mUICenter; } else { targetPos = this.mMapCenter; } } createSkillShoot(id, targetPos, targetID, true, (int)type); break; case EBulletTargeType.EBULLET_TARGET_Center: createSkillShoot(id, Vector3.zero, targetID, true, (int)type); break; } } } }