์ฝ”๋“œ ์˜ฌ๋ฆฌ๊ธฐ๋Š” ํ•˜๋Š”๋ฐ ์ผ๋‹จ ์บ๋ฆญํ„ฐ ์ฝ”๋“œ๋ž‘์€ ์ƒ๊ด€ ์—†์„๊ฑฐ๋ผ ์ƒ๊ฐํ•ด.ย 

์ €๊ธฐ ๊ธ€์—์„œ ๊นŒ๋จน๊ณ  ๊ฑฐ์˜ ์–ธ๊ธ‰์„ ์•ˆ ํ–ˆ์ง€๋งŒ, ์›€์ง์˜€๋‹ค ๋ฉˆ์ถ”๋Š” ์บ๋ฆญํ„ฐ ๋ฟ ์•„๋‹ˆ๋ผย  '์•„์˜ˆ ๋ฉˆ์ถฐ์žˆ๋Š”' ์˜ค๋ธŒ์ ํŠธ์—๋„ ์ €๋ ‡๊ฒŒ ํ”ฝ์…€์ด ์šฐ๋Š” ์ฆ์ƒ์ด ๋‚˜ํƒ€๋‚˜๊ฑฐ๋“ ...

๊ทธ๋ฆฌ๋“œ๊ฐ€ 0.0625๋‹จ์œ„๋กœ ์•ˆ ๋งž์ถฐ์ ธ์„œ ๋ง‰ ๋ฐฐ์น˜ํ•ด๋†จ์„ ๊ฒฝ์šฐ.

๋‹จ์œ„ ๋งž์ถฐ๋†“์œผ๋ฉด ์•ž๊ธ€์˜ ๋งจ ์•„๋žซ ์งค๋ฐฉ์ฒ˜๋Ÿผ ์•ˆ ์šธ์Œ.


์ €๊ฑฐ ํ‘œํ˜„์„ ์šด๋‹ค๊ณ  ํ•ด๋„ ๋˜๋‚˜. ์ƒ๊ฐ๋‚˜๋Š” ํ‘œํ˜„์ด ์—†์–ด์„œ ๊ทธ๋ ‡๊ฒŒ ์ผ์–ด.



์ผ๋‹จ ํ”ฝ์…€ ํผํŽ™ํŠธ ์—์…‹ ์ ์šฉ ์งค.



์นด๋ฉ”๋ผ ์ฝ”๋“œ.


ย  Player thePlayer; ( player = ์กฐ์ž‘ ํ”Œ๋ ˆ์ด์–ด ํด๋ž˜์Šค ์ด๋ฆ„)

ย  ย ย 

ย  ย  private Vector3 Targetpos;

ย  ย  public float moveSpeed; // ํ‰์†Œ ํ”Œ๋ ˆ์ด์–ด ๋”ฐ๋ผ๋‹ค๋‹ˆ๋Š” ์†๋„


ย void FixedUpdate()ย  ย // ํ”ฝ์Šค๋“œ ์—…๋ฐ์ดํŠธ ์‚ฌ์šฉ.

ย  ย  {

ย  ย  ย  ย  ย  ย  thePlayer = FindObjectOfType();

ย  ย  ย  ย  ย  ย  Targetpos = new Vector3(thePlayer.transform.position.x, thePlayer.transform.position.y, transform.position.z);

ย  ย  ย  ย  ย  ย  transform.position = Vector3.Lerp(transform.position, Targetpos, moveSpeed * Time.deltaTime);


ย  ย  }



์บ๋ฆญํ„ฐ ์ฝ”๋“œ.ย ย 

(์ˆซ์ž ๊ด€๋ จ ๋ณ€์ˆ˜๋“ค์€ ๋‹ค float.)

Rigidbody ํ˜ธ์ถœ๋ช…์€ ๊ฑ Rigidbody๋กœ ํ•จ.


Movespeed = Movespeedchoice * MoveSlow * Time.deltaTime; // movespeedchoice๊ฐ€ public์œผ๋กœ ์œ ๋‹ˆํ‹ฐ ๋‚ด์—์„œ ์›ํ•˜๋Š” ์†๋„ ์ž…๋ ฅ. moveslow๋Š” ๋ฐ”๋‹ฅ์— ์ง„ํ™์ด๋ผ๋˜๊ฐ€ ๊น”๋ฆด๋•Œ ๊ณฑํ•ด์„œ ์†๋„ ๋А๋ฆฌ๊ฒŒ ํ•จ. ํ‰์†Œ์—๋Š” 1


ย  ย  ย  ย  // ๋Œ€๊ฐ์„  ์ด๋™์‹œ ๊ฐ์†.

ย  ย  ย  ย  if (Input.GetAxisRaw("Horizontal") != 0 && Input.GetAxisRaw("Vertical") != 0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  Crossmovespeed = Movespeed * Crossmovespeeddivision;(๋ˆˆ๋Œ€์ค‘์œผ๋กœ ์ •ํ–ˆ๋Š”๋ฐ ๋Œ€๊ฐ• 0.3)

ย  ย  ย  ย  }

ย  ย  ย  ย  // ํ‰์ƒ์‹œ์—๋Š” ๊ฐ์† x

ย  ย  ย  ย  else

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  Crossmovespeed = 0;

ย  ย  ย  ย  }


if (Input.GetAxisRaw("Horizontal") > 0 || Input.GetAxisRaw("Horizontal")

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  Rigidbody.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * (Movespeed - Crossmovespeed), Rigidbody.velocity.y);

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  playermoving = true; // ์บ๋ฆญํ„ฐ๋Š” ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค.

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย ย 

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  lastmove = new Vector2(Input.GetAxisRaw("Horizontal"), 0f); // ์บ๋ฆญํ„ฐ๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ–ฅํ•œ ๋ฐฉํ–ฅ. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ด€๋ จ ์ฝ”๋“œ.

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  if (Input.GetAxisRaw("Vertical") > 0 || Input.GetAxisRaw("Vertical")

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  Rigidbody.velocity = new Vector2(Rigidbody.velocity.x, Input.GetAxisRaw("Vertical") * (Movespeed - Crossmovespeed));

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  playermoving = true; // ์บ๋ฆญํ„ฐ๋Š” ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค. ์• ๋‹ˆ๋ฉ”์ด์…˜, ์•„๋ž˜ 0.0625๋‹จ์œ„ ์ ์šฉ ์ฝ”๋“œ.

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย 

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  lastmove = new Vector2(0f, Input.GetAxisRaw("Vertical")); // ์บ๋ฆญํ„ฐ๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ–ฅํ•œ ๋ฐฉํ–ฅ. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ด€๋ จ ์ฝ”๋“œ.

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  if (Input.GetAxisRaw("Horizontal") == 0) // ์กฐ์ž‘์ด ์—†์„๊ฒฝ์šฐ ์†๋„ 0์œผ๋กœ.(์›€์ง์ด์ง€ ๋ง ๊ฒƒ.)

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  Rigidbody.velocity = new Vector2(0f, Rigidbody.velocity.y);

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  if (Input.GetAxisRaw("Vertical") == 0)

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  Rigidbody.velocity = new Vector2(Rigidbody.velocity.x, 0f);

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  if (Input.GetAxisRaw("Horizontal") == 0 && Input.GetAxisRaw("Vertical") == 0)

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  playermoving = false; // ํ”ฝ์…€ํผํŽ™ํŠธ. ๋ฐœ๋™์œ„ํ•ด ์›€์ง์ด์ง€ ์•Š์„ ๋•Œ false๊ฐ’ ์ฃผ๊ธฐ.

ย  ย  ย  ย  ย  ย  ย  ย  }

ย if (!playermoving) // ์บ๋ฆญํ„ฐ๊ฐ€ ๋ฉˆ์ท„์„ ๋•Œ,(๊ทธ๋ฆฌ๋“œ๋‹จ์œ„ ๋งž๋„๋ก 0.0625 ๊ทธ๋ฆฌ๋“œ ๋‹จ์œ„๋กœ ๋ฉˆ์ถฐ์„ ๋‹ค.) // ์ด๊ฒŒ ๋‚ด๊ฐ€ ์ ์šฉ์‹œํ‚จ ๊ทธ ๋ฉˆ์ถœ๋•Œ๋งˆ๋‹ค ์ž‘๋™๋˜๋Š” ์ฝ”๋“œ...

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  transform.position = new Vector3(transform.position.x - (transform.position.x % 0.0625f), transform.position.y - (transform.position.y % 0.0625f), transform.position.z);

ย  ย  ย  ย  }