public override bool FindFollowTarget() { if (null == FollowTarget) { if (XUtility.DistanceNoY(GamingSys.Instance.Player.transform.position, transform.position) <= CurSkill.Attr.FindDist) { FollowTarget = GamingSys.Instance.Player; GamingSys.Instance.Player.AddTeammate(this); } #if UNITY_EDITOR XUtility.DrawCircle(transform.position, transform.forward, CurSkill.Attr.FindDist, Color.green, 1f); #endif } return(FollowTarget != null); }
public override bool FindAttackTarget() { AttackTarget = null; Dictionary <long, Hero> hero = GamingSys.Instance.Player.Teammates; float temp, dire = float.MaxValue; foreach (Actor actor in hero.Values) { if (actor.IsDead || actor.FollowTarget == null) { continue; } temp = XUtility.DistanceNoY(actor.transform.position, transform.position); if (temp <= CurSkill.Attr.FindDist && temp < dire) { dire = temp; AttackTarget = actor; } } #if UNITY_EDITOR XUtility.DrawCircle(transform.position, transform.forward, CurSkill.Attr.FindDist, Color.yellow, 1f); #endif return(null != AttackTarget); }