์šฐ์„  ๋จผ์ € ๋ฏธ์•ˆํ•˜๋‹ค.. ๋‚˜๋ฆ„ ๋ช‡์ผ ๊ณ ๋ฏผํ•˜๋˜๊ฑฐ ๊ฝค๋‚˜ ๋ช…์พŒํ•˜๊ฒŒ ํ•ด๊ฒฐํ•ด์„œ ๊ณต์œ ๋Š” ํ•˜๋ คํ–ˆ๋Š”๋ฐ

ํ”ผ๊ณคํ•ด์„œ ๋Œ€์ถฉ๋งŒ ์งš๊ณ ๊ฐˆ๊ฒŒ.. ใ…œใ…œ


์šฐ์„  ๊ฒฐ๊ณผ ์˜์ƒ (๊ณจ๋“œ ๋“œ๋ž ํ›„ ๋งˆ๊ทธ๋„ท ํšจ๊ณผ)

์€ ๋„ฃ์—ˆ๋‹ค๊ฐ€ ์˜์ƒ๊ฐœ์ˆ˜ ์ œํ•œ๋•Œ๋งค ๋บŒ ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=145938&s_type=search_subject_memo&s_keyword=.ED.8C.8C.ED.8B.B0&page=1

์œ ๋‹ˆํ‹ฐ) ์˜ค๋Š˜ ํ•œ๊ฒƒ : ํผ์ง€๊ณ  ๋ชจ์ด๋Š” ํŒŒํ‹ฐํด ์™„์„ฑ!!!์ด๊ฑฐ ๋งŒ๋“ค๋ฉด์„œ ์ œ์ผ ํฐ ํ‚คํฌ์ธํŠธ๊ฐ€ ๊ตณ์ด ํŒŒํ‹ฐํด๋‚ด๋ถ€์—์„œ ๋ชฉํ‘œ์ง€์  ์ •ํ•˜๋ ค ํ•˜์ง€๋ง๊ณ ์›ํ˜•์œผ๋กœ ๊ฐ ํƒ„ํ™˜ ๋‚ ๋ฆฌ๊ณ  ๋Œ๋ ค๋ฐ›์œผ๋ฉด์„œ, ํŒŒํ‹ฐํด ์˜ค๋ธŒ์ ํŠธ ์ž์ฒด๋ฅผ ์ด๋™์‹œํ‚ค๋ฉด ๋จ์บฌ@!!!!!!gall.dcinside.com



1. ์˜ค๋ธŒ์ ํŠธ ์„ ํ˜• ์ด๋™์„ ์‹œํ‚จ๋‹ค (์†๋„๋Š” ๊ณก์„ ์œผ๋กœ)



2. ์›ํ˜• ์‚ฐ๊ฐœ-๋ณต๊ท€ ํƒ„ํ™˜ ํŒŒํ‹ฐํด์„ ์ƒ์„ฑํ•œ๋‹ค


3. ํŒŒํ‹ฐํด(2)์„ ์„ ํ˜• ๊ฐ€์† ์ด๋™(1)์‹œํ‚จ๋‹ค


์‚ฌ์‹ค ์ข€ ์„ค๋ช…ํ•˜๊ธฐ ๊ท€์ฐฎ์•„์„œ ๋Œ€์ถฉ ๋ณต์‚ฌํ•ด์„œ ์ฐธ๊ณ ๋งŒ ํ•ด๋ด ๋˜ฅ์ฝ”๋“œ์ž„ ใ…œใ…œ

public class Test_PopGather : MonoBehaviour

{

ย  ย  public Transform _src, _dst;

ย  ย  public ParticleSystem particle;


ย  ย  public float totalTime;

ย  ย  public float coef;


ย  ย  [ContextMenu("TestPlay")]

ย  ย  public void myPlay()

ย  ย  {

ย  ย  ย  ย  StartCoroutine(moveBlockTime());

ย  ย  }


ย  ย  private IEnumerator moveBlockTime()

ย  ย  {

ย  ย  ย  ย  float lifeTime = totalTime;

ย  ย  ย  ย  Transform movObj = particle.transform;


ย  ย  ย  ย  var _particleMain = particle.main;

ย  ย  ย  ย  _particleMain.startLifetime = totalTime;


ย  ย  ย  ย  Vector3 _srcV3 = _src.position;

ย  ย  ย  ย  Vector3 _dstV3 = _dst.position;



ย  ย  ย  ย  float elapsedTime = 0.0f;

ย  ย  ย  ย  if (!particle.isPlaying)

ย  ย  ย  ย  ย  ย  particle.Play();

ย  ย  ย  ย  else

ย  ย  ย  ย  ย  ย  Debug.Log("sad");


ย  ย  ย  ย  while (true)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  yield return null;

ย  ย  ย  ย  ย  ย  if (elapsedTime > lifeTime) break;


ย  ย  ย  ย  ย  ย  movObj.position = Vector3.Lerp(_srcV3, _dstV3, Mathf.Pow((elapsedTime / lifeTime), coef));

ย  ย  ย  ย  ย  ย  elapsedTime += Time.deltaTime;


ย  ย  ย  ย  ย  ย 

ย  ย  ย  ย  }


ย  ย  ย  ย  movObj.position = _dstV3;

ย  ย  }

}



๊ทธ๋ฆฌ๊ณ  ํŒŒํ‹ฐํด ๋‚ด๊ฐ€ ๋ช‡๋ฒˆ ์‹œํ–‰์ฐฉ์˜ค ๊ฒช์—ˆ๋˜ ๊ธฐ์–ต ๋‚˜๋Š”์• ๋“ค๋งŒ ๋”ฐ๋กœ ์บก์ณํ•จ

3ab5d620f0cb76b660b8f68b12d21a1d96b6766f65

( ์œ„ ๊ทธ๋ž˜ํ”„ ์ขŒ์šฐ ์ ๋ถ„๊ฐ’์ด ์˜ค๋ฅธ์ชฝ์ด ์‚ฌ์•Œ์ง ์ปค์•ผํ•จ, ๊ทธ๋ƒฅ ์ ๋Œ€์นญ์œผ๋กœ ํ•˜๋ฉด ๋จ )


ใ„นใ…‡ ๋Œ€์ถฉํ–ˆ์–ด์„œ ์นญ์ฐฌ๋ฐ›์„ ์ƒ๊ฐ์€ ์—†๊ตฌ... ๊ทธ๋ƒฅ ๊ฝค๋‚˜ ๊ณ ์ƒํ–ˆ๋˜๊ฒŒ ๊ฒ๋‚˜ ๋‹จ์ˆœํ•œ ์ž‘์—…์˜ ์—ฐ์†์œผ๋กœ ํ’€๋ฆฌ๋Š” ๊ฑฐ ๊ณต์œ  ํ•จ ํ•ด๋ดค์–ด

(์›ํ˜•์œผ๋กœ ํผ์ง„ ์ ๋“ค์ด ํ•œ๊ณณ์— ๊ท ๋“ฑํ•œ ์‹œ๊ฐ„์œผ๋กœ ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋ฉฐ ์ ‘๊ทผ)


์•„๋งˆ ์งง์€์ƒ๊ฐ์œผ๋ก  ์ด๋Ÿฐ ์ ‘๊ทผ์ดย ๊ตฐ์ง‘์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋Ÿฐ๋ฐ์„œ๋„ ์“ธ๋งŒํ• ๊ฑฐ๊ฐ™์Œ!


์šฐ๋ฆฌ ์ธ๋”” ์ธ์ƒ ํ™”์ดํŒ…@!!!!!!!