protected void Start()
    {
        if (DistanceBetweenPoints <= 0)
        {
            DistanceBetweenPoints = 0.3f;
        }


        //OnPathCalculation();
        NormalizedTLeaps       = (1f / 250f);
        PathDiscoveryPointPool = GameObjectPool.Instance.GetPathDiscoveryPool(PathDiscoveryPointPrefab);
        PathDiscoveryPoint[] pds = new PathDiscoveryPoint[500];
        int counter = 0;

        for (float i = 0; i < 1.0f; i += NormalizedTLeaps)
        {
            PathDiscoveryPoint pd = PathDiscoveryPointPool.Get();
            pd.transform.position = spline.GetPoint(i);
            pd.Proximity          = i;
            //pd.gameObject.SetActive(true);
            pds[counter] = pd;
            pd           = null;
            counter     += 1;
        }

        pathphobject = GameObjectPool.Instance.PlaceHoldersDict["_PlaceHolder_" + PathDiscoveryPointPrefab.name];



        StartCoroutine(movePathObjectsAndTriggerDetection(pds));
    }
Ejemplo n.º 2
0
 public override async void AttackFunction(Effectable singleTarget, Vector2 SingleTargetPosition)
 {
     if (AsyncAttackInProgress == false)
     {
         AsyncAttackInProgress = true;
         GenericProjectile proj = projectilePool.Get();
         var transform          = proj.transform;
         transform.rotation    = ProjectileExitPoints[0].transform.rotation;
         transform.position    = ProjectileExitPoints[0].transform.position;
         proj.TargetPosition   = ProjectileFinalPoints[0].transform.position; // can also be projectile final point position
         proj.EffectableTarget = singleTarget ?? null;
         proj.Activate();
         AsyncAttackInProgress = false;
     }
 }