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]);
 }
Exemple #2
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]);
 }
Exemple #3
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);
    }