コード例 #1
0
 private IEnumerator Launch()
 {
     while (firedGrenadeCount <= grenadeMaxCount)
     {
         firedGrenadeCount++;
         GrenadeEffect effect = grenadeEffectPool.Allocate();
         effect.Initialize(() => grenadeEffectPool.Release(effect));
         Grenade granede = grenadePool.Allocate();
         granede.transform.position = this.transform.position;
         granede.gameObject.SetActive(true);
         granede.Launch(effect, areaPoints.GetRandomPoint(target.position), target, () => grenadePool.Release(granede));
         yield return(new WaitForSeconds(fireRate));
     }
 }
コード例 #2
0
ファイル: Grenade.cs プロジェクト: tiyago1/project-f
    public void Launch(GrenadeEffect effect, Vector2 target, Transform playerPosition, Action callBack)
    {
        this.effect   = effect;
        this.callBack = callBack;
        TweenerCore <Vector3, Vector3, VectorOptions> moveTween = this.transform.DOMove(target, 1f);

        moveTween.OnStart(() => this.transform.DOScale(3, .5f).OnComplete(() => this.transform.DOScale(2, .5f)));
        moveTween.OnComplete(() =>
        {
            this.transform.DOPunchScale(Vector3.one, .2f);
            Vector3 direction   = (this.transform.position - playerPosition.position).normalized;
            Vector2 newPosition = this.transform.position - (direction);
            //Vector2 newPosition = playerPosition;

            xx = StartCoroutine(GrenadeClockingLoop(target, playerPosition, Random.Range(0.2f, 2.5f), 10));
            damageAreaIndicator.SetActive(true);
            animator.SetTrigger("clocking");
        });
    }