์ดˆ๋ณด์ž์šฉ ์˜์ƒ ๋ณด๋ฉด์„œ ์ ํ”„ํ•˜๋Š”๊ฑฐ ๊ฒจ์šฐ๊ฒจ์šฐ ๋”ฐ๋ผํ–ˆ๋Š”๋ฐ

๊ณ ์ „ ๊ฒŒ์ž„๋งˆ๋ƒฅ ์ฒด๊ณตํ•œ์ฑ„๋กœ ์ด๋™์ด ๋จ

๊ณต์ค‘์— ๋– ์„œ ๊ด€์„ฑ์— ๊ฑฐ์Šค๋ฅด๊ฒŒ ์›€์ง์ด๋‹ˆ๊นŒ ์ด์ƒํ•จ;

๊ทธํƒ€๋‚˜ ์œ ๋น„๊ฒœ์ฒ˜๋Ÿผ ์ ํ”„ํ•˜๋ฉด ๊ทธ ๋ฐฉํ–ฅ์œผ๋กœ ์ญ‰ ๊ฐ€๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์ƒํ™ฉ์ž„


์—ฌ๊ธฐ์„œ ์งˆ๋ฌธ์ธ๋ฐ


์ฒซ์งธ๋กœ, A ๋ณ€์ˆ˜๊ฐ€ ์‹คํ–‰์ค‘ B๋ณ€์ˆ˜๊ฐ€ ์ฐจ๋‹จ๋˜๋„๋ก ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ถ๊ธˆํ•จ.

๊ฐ•์˜ ์˜์ƒ์—, ์•‰์€์ฑ„ ์Šคํ”Œ๋ฆฐํŠธ ์“ฐ๋ฉด ์•‰๊ธฐ ํ•ด์ œ ๋˜๊ฒŒ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์จ์ ธ์žˆ๋Š”๋ฐ



private void Running()

{

if(isCrouch)

Crouch();

}




์˜€์Œ. ์ด๊ฑธ ์‘์šฉํ•œ๋‹ค๋ฉด isJump ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ




private void Jump()

{

if(isJump)

Move๋ชปํ•˜๊ฒŒํ•˜๋Š”์Šคํฌ๋ฆฝํŠธ();

}

์ด๋Ÿฐ ์‹์œผ๋กœ ์‘์šฉ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ, 'Move๋ชปํ•˜๊ฒŒํ•˜๋Š”์Šคํฌ๋ฆฝํŠธ'๋ž€์— ๊ทธ๋ƒฅ Move๋ฅผ ์จ์„œ ์ ํ”„+๋ฐฉํ–ฅ์กฐ์ž‘์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ ํ”„์‹œ ๋ฐฉํ–ฅ์กฐ์ž‘ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ ์‹ถ๋‹ค;

!Move๋„ ์จ๋ดค๋Š”๋ฐ !๋Š” ์ด๋Ÿด๋•Œ ์“ฐ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๊ณ  ์—๋Ÿฌ๋งŒ ๋‚˜์˜ด


๋‘๋ฒˆ์งธ ์งˆ๋ฌธ์€, ์ฒซ๋ฒˆ์งธ์˜ ๋Œ€์•ˆ์œผ๋กœ ์ ํ”„ 0.1์ดˆ ํ›„ ๋ถ€ํ„ฐ ์ฐฉ์ง€์ƒํƒœ (isGround ๋ผ๊ณ  ๋ณ€์ˆ˜ ๋งŒ๋“ค์–ด ๋†“์Œ)์ „๊นŒ์ง€ Move๊ฐ€ ์ž‘๋™๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ ์ด๋Ÿด๋• ์–ด๋–ค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?



์„ธ๋ฒˆ์งธ ์งˆ๋ฌธ์€, ๋งŒ์ผ ์œ„์™€ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ธ ๊ฒฝ์šฐ ์ ํ”„+๋ฐฉํ–ฅํ‚ค๊ฐ€ ๋จน์ง€ ์•Š์„ํ…Œ๋‹ˆ ์ œ์ž๋ฆฌ ์ ํ”„๋งŒ ๊ฐ€๋Šฅํ•ด ์งˆํ…๋ฐ, ๋‚˜๋จธ์ง€ ๋‹ค์„ฏ๊ฐ€์ง€ ์ ํ”„๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ ํ”„๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ธฐ ์ „ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด๋™ํ•˜๋˜ ๋ฐฉํ–ฅ+์ ํ”„๊ฐ€ ๋™์‹œ์— ์ด๋ฃจ์–ด์ ธ์•ผ ํ•  ๊ฒƒ ๊ฐ™์€๋ฐ.. ์ด๊ฑธ ์•Œ๋ ค๋ฉด ๋ญ๋ผ๊ณ  ๊ฒ€์ƒ‰์„ ํ•ด๋ด์•ผ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ?




์ง€๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋Œ€๋žต

Move๋Š”


ย private void Move()

ย  ย  {

ย  ย  ย  ย  float _moveDirX = Input.GetAxisRaw("Horizontal");

ย  ย  ย  ย  float _moveDirZ = Input.GetAxisRaw("Vertical");

ย  ย  ย  ย  Vector3 _moveHorizontal = transform.right * _moveDirX;

ย  ย  ย  ย  Vector3 _moveVertical = transform.forward * _moveDirZ;

ย  ย  ย  ย  Vector3 _velocity = (_moveHorizontal + _moveVertical).normalized * applySpeed;

ย  ย  ย  ย  myRigid.MovePosition(transform.position + _velocity * Time.deltaTime);

ย  ย  }



์ ํ”„ ๊ด€๋ จ์€

// ์ ํ”„ ์‹œ๋„

ย  ย  private void TryJump()

ย  ย  {

ย  ย  ย  ย  if(Input.GetKeyDown(KeyCode.Space) && isGround)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  Jump();

ย  ย  ย  ย  }

ย  ย  }



ย  ย  // ์ ํ”„

ย  ย  private void Jump()

ย  ย  {


ย  ย  ย  ย  // ์•‰์€ ์ƒํƒœ์—์„œ ์ ํ”„์‹œ ์•‰์€ ์ƒํƒœ ํ•ด์ œ

ย  ย  ย  ย  if(isCrouch)

ย  ย  ย  ย  ย  ย  Crouch();


ย  ย  ย  ย  myRigid.velocity = transform.up * jumpForce;

ย  ย  }




์ด๋Ÿฐ์‹์œผ๋กœ ์งœ์—ฌ์ ธ ์žˆ์Œ