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); } } }
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); } } }