Пример #1
0
    void Start()
    {
        positivemaxTargetingRotation = 180 + maxTargetingRotationDifference;
        negativemaxTargetingRotation = 180 - maxTargetingRotationDifference;
        Invoke("Explode", fuse);
        uIArrows = GameObject.Find("UI Camera").GetComponent <UIArrows>();
        rb       = GetComponent <Rigidbody>();
        InvokeRepeating("MissileTargetFinding", 0, 0.1f);
        targ          = uIArrows.GetClosestToCenter();
        currentTarget = targ.ForTargeting;
        Vector3 position = transform.position;

        targeter.transform.LookAt(currentTarget.transform);
        Vector3 missileEulerRotation  = transform.rotation.eulerAngles;
        Vector3 targeterEulerRotation = targeter.transform.rotation.eulerAngles;
        Vector3 rotationDifference    = new Vector3(Mathf.Abs(targeterEulerRotation.x - missileEulerRotation.x), Mathf.Abs(targeterEulerRotation.y - missileEulerRotation.y), Mathf.Abs(targeterEulerRotation.z - missileEulerRotation.z));

        if (rotationDifference.x <negativemaxTargetingRotation | rotationDifference.x> positivemaxTargetingRotation)
        {
            if (rotationDifference.y <negativemaxTargetingRotation | rotationDifference.y> positivemaxTargetingRotation)
            {
            }
            else
            {
                currentTarget = null;
            }
        }
        else
        {
            currentTarget = null;
        }
    }
Пример #2
0
        public override void Initialize(BehaviourProcessor behaviourProcessor)
        {
            base.Initialize(behaviourProcessor);

            actorMovement      = behaviourProcessor.GetComponent <ActorMovement>();
            targetingBehaviour = behaviourProcessor.GetComponent <TargetingBehaviour>();
            targetingDistance  = behaviourProcessor.GetComponent <TargetingDistance>();
        }
Пример #3
0
 public TargetingDistance GetClosestToCenter()
 {
     Distances.Clear();
     foreach (UITarget uITarget in DataHandling.forIdentifing)
     {
         UiMarkersController controller      = uITarget.uimarker.GetComponent <UiMarkersController>();
         float             xPos              = controller.GetXPos();
         float             yPos              = controller.GetYPos();
         TargetingDistance targetingDistance = new TargetingDistance();
         targetingDistance.distance     = Pythagoras(xPos, yPos);
         targetingDistance.ForTargeting = uITarget.Target;
         targetingDistance.targetMarker = uITarget.uimarker;
         Distances.Add(targetingDistance);
     }
     Distances.Sort(CompareByDistance);
     return(Distances[0]);
 }
Пример #4
0
 int CompareByDistance(TargetingDistance x, TargetingDistance y)
 {
     if (x.distance == null)
     {
         if (y.distance == null)
         {
             return(0);
         }
         else
         {
             return(-1);
         }
     }
     else
     {
         if (y.distance == null)
         {
             return(1);
         }
         else
         {
             if (x.distance > y.distance)
             {
                 return(1);
             }
             else if (x.distance < y.distance)
             {
                 return(-1);
             }
             else
             {
                 return(0);
             }
         }
     }
 }