private Vector3[] GenerateDirPathToTarget(MovementMode mode, AITargeter source, AITargeter target) { if (mode == MovementMode.AdditiveSetForward) { return new Vector3[1] { (target.transform.position - source.transform.position) / 10 } } ; else if (mode == MovementMode.AdditiveToTransform) { return new Vector3[1] { source.transform.InverseTransformDirection(target.transform.position - source.transform.position) / 10 } } ; else if (mode == MovementMode.SetToForward) { return(CircleMotion.GeneratePtToPtMotionOnForw(source, target, 16)); } else { Debug.Log("Unsupported mode. [PathfindToTargetMotion]" + mode); } return(new Vector3[0]); }
private Vector3[] GenerateDirPathToTarget(MovementMode mode, AITargeter source, AITargeter target) { if (mode == MovementMode.SetToForward) { return(CircleMotion.GeneratePtToPtMotionOnForw(source, target, 16)); } else { Debug.Log("Unsupported mode. [MoveToEnemy]" + mode); } return(new Vector3[0]); }
public override NodeResult Execute() { AITargeter aiSource = source as AITargeter; AITargeter s = Spawner.GetSpawnerOfSource(source as AITargeter); if (s) { axis = s.transform.forward; } else { Debug.LogError("Missing spawner source."); return(NodeResult.Failure); } (source as AITargeter).moving.Attach(mode, CircleMotion.GenerateCircleOfDirections(aiSource.transform.position, s.transform.position, size, pointsDetail, axis)); return(NodeResult.Success); }
public override NodeResult Execute() { KeyCheck(); AITargeter s = source as AITargeter; float t = times[s]; if (Time.time > t) { Vector3[] pts = CircleMotion.GenerateCircleOfDirections(1, this.pts); for (int i = 0; i < this.pts; i++) { Transform b = Instantiate((Transform)bullet.GetValue(), s.transform.position, new Quaternion()); b.up = pts[i]; } t = Time.time + (float)rate.GetValue(); } times[source as AITargeter] = t; return(NodeResult.Success); }