Beispiel #1
0
    public void ArrowCreate(Vector3 targetPos, float moveTime)
    {
        if (this != null)
        {
            if (arrow.Count < 1)
            {
                GameObject a;
                for (int i = 0; i < 5; ++i)
                {
                    a = Instantiate(arrowPrefab, new Vector3(0, 0, 0), Quaternion.identity, transform.parent);
                    a.SetActive(false);
                    arrow.Add(a);
                }
            }
            GameObject Arrow = arrow[0];
            arrow.RemoveAt(0);
            arrow.Add(Arrow);
            Arrow.SetActive(true);
            Arrow.transform.position = transform.position;
            Arrow.transform.LookAt(targetPos);
            Arrow.transform.DOMove(targetPos, moveTime, true).OnKill(() => { Arrow.SetActive(false); });

            TargetProjectile tp = Arrow.GetComponent <TargetProjectile>();
            if (tp != null)
            {
                tp.ActiveFalse(moveTime);
            }
        }
    }
Beispiel #2
0
    public void CreateArrow(Vector3 targetPos, float moveTime)
    {
        if (this != null)
        {
            //화살이 부족한 경우에만 풀링을 돌림
            if (arrow.Count < 1)
            {
                GameObject arrowObj;

                for (int i = 0; i < 5; ++i)
                {
                    arrowObj = Instantiate(arrowPrefab, new Vector3(0, 0, 0), Quaternion.identity, transform.parent);
                    arrowObj.SetActive(false);
                    this.arrow.Add(arrowObj);
                }
            }

            GameObject frontArrow = arrow[0];
            arrow.RemoveAt(0);
            arrow.Add(frontArrow);
            frontArrow.SetActive(true);
            frontArrow.transform.position = transform.position;
            frontArrow.transform.LookAt(targetPos);
            frontArrow.transform.DOMove(targetPos, moveTime, false).OnKill(() => { frontArrow.SetActive(false); });
            TargetProjectile projectile = frontArrow.GetComponent <TargetProjectile>();

            if (projectile != null)
            {
                projectile.ActiveFalse(moveTime);
            }
        }
    }