public void _export_to_target_damage(EntityExportToTargetData data, EntityBlackBoard blackboard) { if (data == null || blackboard == null) { return; } BaseEntity entity = blackboard.entity; target_list = blackboard.GetValue <List <BaseEntity> >(EntityBlackBoardConst.TARGET_LIST); int length = target_list.Count; for (int i = 0; i < length; i++) { DamageHelper.ExportDamageToTarget(entity, target_list[i], 10); ActionLog.Log("对目标:[{0}]造成[{1}]点伤害", target_list[i].ToDes(), data.damage); } target_list.Clear(); }
public void _find_target(EntityBlackBoard blackboard, EntityFindTargetData data) { if (data == null || blackboard == null) { return; } float angle = data.degree / 2; BaseEntity entity = blackboard.entity; // 1.得到自身的方向和世界坐标 Vector3 direction = entity.EntityController.Direction; Vector3 worldPosition = entity.EntityController.WroldPosition; _targetList = blackboard.GetValue <List <BaseEntity> >(EntityBlackBoardConst.TARGET_LIST); int length = EntitesManager.Instance._entites.Count; for (int i = 0; i < length; i++) { BaseEntity tmpEntity = EntitesManager.Instance._entites[i]; if (tmpEntity == entity) { continue; } // 2.双方之间的距离 float distance = MathHelper.Distance2D(tmpEntity.EntityController.WroldPosition, worldPosition); // 3.距离大于指定长度 if (distance > data.radius) { continue; } // 4.自己和目标之间的方向 Vector3 targetDirection = tmpEntity.EntityController.WroldPosition - worldPosition; // 5.角度小于指定长度 敌我方向和自身的正前方之间的夹角 float tmpAngle = MathHelper.GetAngle04(targetDirection, direction); if (tmpAngle > angle) { continue; } // 添加到目标 _targetList.Add(tmpEntity); ActionLog.Log("找到目标:{0}", tmpEntity.EntityController.gameObject.name); } }
public static void LogAction(string module, string action) { ActionLog.Log(module, action, CurrentUser.User.Username); }