ย ย ย voidย Jump()
ย ย ย ย {
ย ย ย ย ย ย ย ย floatย height = (_jumpTime * _jumpTime * (-_gravity) / 2) + (_jumpTime * _jumpPower);
ย ย ย ย ย ย ย ย _transform.position =ย newย Vector3(_transform.position.x, _posY + height, _transform.position.z);
ย ย ย ย ย ย ย ย _jumpTime += Time.deltaTime;
ย ย ย ย ย ย ย ย ifย (height
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย ย ย _isJumping =ย false;
ย ย ย ย ย ย ย ย ย ย ย ย _jumpTime = 0.0f;
ย ย ย ย ย ย ย ย ย ย ย ย _transform.position =ย newย Vector3(_transform.position.x, _posY, _transform.position.z);
ย ย ย ย ย ย ย ย }
์ ํ๋ฅผ rigid.velocity = Vector2.up * jumpPower;๊ฐ ์๋๋ผ ์ง์ ์๊ฐ์ด๋ ์ค๋ ฅ๊ฐ์๋๋ฃ๊ณ ์ง๋ฉด์ ๋ฐฐ์๊ฐ๋์ค์ธ๋ฐ ์ ๋ ๊ฒ ์ฐ๋๊น ์ ํํ ๋ ์๊ฐ์ด๋๋จ.
์ ์ฝ๋์์๋ย transform.position์ฐ๋๊น ์๊ฐ์ด๋๋๋๊ฒ ๋ง๋๋ฐ, ์๊ฐ์ด๋์ด ์๋๋ผ ์์ฐ์ค๋ฌ์ด ์ด๋์ผ๋ก ๋ง๋ค๋ ค๊ณ ๋ณ์ง๋คํ๋๋ฐ ์คํจํจ.
์์ง ์ฝ๋์ง๋๊ฒ ์ด๋ ค์ด ๋ด๋น์๊ฒ ๊ฐ๋ฅด์นจ์ข ๋ถํ๋๋ฆฝ๋๋คย
ํ ...
์ ๋ฆฌ์ง๋๋ฐ๋ ์์ฐ๋ ค๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ ํํ๋ฉด speed๊ฐ์ ์๋๊ฐ ๋ฃ์ด์ฃผ๊ณ ์๊ธฐ ์์น ๋ฌํ๋ก ํฌ์ง์ ์ก๊ณ ๊ตฌ๋ฌธ ๋๋ ๋ speed๊ฐ ์ํ๋ ์ค๋ ฅ๋งํผ ๊ฐ์์์ผ์ฃผ๋ฉด ๋ ๋ฏ
rigd.velocity = new Vector3(transform.position.x, startY + hight, transform.position.z); ์ด๋ ๊ฒ? ์ด๋ ๊ฒ ํ๋๊น ๊ทธ๋ฅ ๋ค๋ก ์ญ ๋ฐ๋ ค๋๋๋ฐ
rigd.velocity = new Vector3(0, startY + hight, 0); ์ด๋ฌ๋ฉด ๋ธ๋๋ง๋ค ์ ๋์ด๋ณด๋ค ๋ ๋์ด๋ฐ๋ ํ์๋ฐ์
rigidbody.velocity = transform.y * jumpforce;
๋ฆฌ์ง๋ ๋ฐ๋ ์ ์ธ๊ฑฐ๋ฉด dotween ์ฐ๋๊ฒ ์ ์ผ ํธํจ. ์์ ์คํ ์ด์์ ๋ค์ด ๊ฐ๋ฅ. ๋ฌด๋ฃ ๋ฒ์ ์ ๋ฃ ๋ฒ์ ์๋๋ฐ ๋ฌด๋ฃ ๋ฒ์ ์จ๋ ๋ฌด๋ฐฉํจ
์๊ฐ(t)์ ๋ฐ๋ฅธ y์ถ ์์น์ ๋ํ ์ด์ฐจํจ์๋ฅผ ์ธ์ฐ๊ณ , ๋ํ์๊ฐ(ํน์ ๋ฐ๋ฅ collider์ ๋ฟ๋๊ฒฝ์ฐ)๊น์ง deltaTime ์ด์ฉํด์ t๋ฅผ ๋์ ํด์ y์ถ์์น๋ฅผ ๊ณ์ฐํด๋ผ. ๊ฐ์ธ์ ์ผ๋ก ๋ ์ ์ฌ์๊ณ ์ํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์ผ๋จ jumptime ์ด ์ด๋จ์๊ฐ ์๋๊ฑฐ๋๊น ์ ๋นํ ๋๋ ์ ์จ๋ด. deltaTime ์ผ๋ก ๋์ค๋ ์๊ฐ์ด ์๋ง ๋ฐ๋ฆฌ์ด๋ ๋ง์ดํฌ๋ก์ด์ผ๊ฑฐ์ผ. 1/1000 ํด์ ์จ๋ด
๋๋ ์ด๋จ์ ๊ฐ์๋๋ฅผ ์ ํด๋๊ณ ์ฐ๊ณ ์ถ์๋ฐ jumptime์ด 1/1000์ด ๊ธฐ์ค์ธ deltatime ๊ธฐ์ค์ผ๋ก ์์ฑ๋์ด์์ผ๋ฉด 1์ด์ 1000์ฉ ๋ค์ด๊ฐ๋ฉด์ ๊ฒฐ๊ณผ์ ์ผ๋ก 1000์ดํ ํฌ์ง์ ์ด ๋ค์ด๊ฐ๊ณ์ง?