๋‚ด๊ฐ€ ๋‹ค๋ฅธ๊ณณ์—์„œ ์—ฌ๋Ÿฌ๊ตฐ๋ฐ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ itween์œผ๋กœ ํฌ๋ฌผ์„  ํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ์ž˜ ์•ˆ๋˜์„œ ๋‹ค๋ฅธ๊ณณ์—์„œย ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ฝ”๋“œ ์ฐพ์•„์„œ ์—ฌ๊ธฐ์— ์ ์–ด๋ด„


https://answers.unity.com/questions/1515853/move-from-a-to-b-using-parabola-with-or-without-it.html

์—ฌ๊ธฐ์ฝ”๋“œ ์‚ฌ์šฉํ–ˆ์Œ.


์ด๊ฑด ๋ถ€๋ชจ์— ๋„ฃ๊ณ  ํฌ๋ฌผ์„  ์‚ฌ์šฉํ•˜๋Š” ์ž์‹์˜ค๋ธŒ์ ํŠธ์—์„œ ๋ถˆ๋Ÿฌ์˜ด

protected void Parabolic(Vector3 start, Vector3 end, float time)

{

float heigh = 3;

float target_X = start.x + (end.x - start.x) * time;

float target_Y = start.y + (end.y - start.y) * time + heigh * (1 - (Mathf.Abs(0.5f - time) / 0.5f) * (Mathf.Abs(0.5f - time) / 0.5f));

this.transform.position = new Vector3(target_X, target_Y);

}


์ด๊ฑด ์ด์•Œ ๋‚ ์•„๊ฐ€๋Š”๊ฑฐ

public class Attack : MonoBehaviour

{

ย  ย  private Vector3 startPos; //์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜

ย  ย  private float preTime; //์ดˆ๊ธฐ ์‹œ๊ฐ„

ย  ย  private float duration = 0.7f; //์†๋„(๋‚ฎ์„์ˆ˜๋ก ๋นจ๋ผ์ง)


ย  ย  private void Start()

ย  ย  {

ย  ย  ย  ย  startPos = this.transform.position;

ย  ย  ย  ย  preTime = Time.time;

ย  ย  }

ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย  //ํฌ๋ฌผ์„  ์ด๋™

ย  ย  ย  ย  Parabolic(startPos, target.transform.position, (Time.time - preTime) / duration);


ย  ย  ย  ย  //์ด์•Œ์ด ํ™”๋ฉด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐˆ๊ฒฝ์šฐ ํŒŒ๊ดด

ย  ย  ย  ย  if (this.transform.position.x < Camera.main.ScreenToWorldPoint(this.transform.position).x)

ย  ย  ย  ย  ย  ย  Destroy(this.gameObject);

ย  ย  }

}


๋‚˜ ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š”๊ฑฐ๋ผ ์ตœ์ ํ™”๋Š” ๋ชจ๋ฅด๊ฒ ๊ณ  ์•Œ์•„์„œ๋“ค ์“ฐ๋ผ๋Š”๊ฑฐ์ง€ ใ…Ž;;