GetButtonDown / GetButtonUp ์ ์ด์ฉํด์ ์ ํํ๊ฒ ๋ง๋ค์๋๋ฐ, ( Jump = Space )
์คํ์ด์ค๋ฅผ 5 ~ 15 ๋ฒ ์ ๋ ๋๋ฌ์ผ ํ๋ฒ ์ธ์ํฉ๋๋ค. ๋ฌด์จ ๋ฌธ์ ์ผ๊น์?
์ฝ๋๋ ์ด๋ฌํฉ๋๋ค.
public class Myball : MonoBehaviour
{
Rigidbody rigid; // Rigidbody ๋ผ๋ Type์ ๋ณ์ rigid๋ฅผ ์์ฑํด์ค.
void Start()
{
rigid = GetComponent<Rigidbody>(); // < > ์์๋ ๋ณ์ํ์ ์ ๋ฃ์ด์ค๋ค.
}
void FixedUpdate()
{
if (Input.GetButtonDown("Jump")){
rigid.AddForce(Vector3.up * 25 , ForceMode.Impulse);
Debug.Log("์๋");
}
}
}
์ด๊ฒ์ ๊ฒ ๊ณ ๋ฏผํด๋ณด๋ค๊ฐ......
[ 1 ] FixedUpdate() ๋์ , Update() ๋ฅผ ์จ์ ํ๋ฉด, ์ ์์๋ ํฉ๋๋ค. ์ฐํํ๋ฉด ์ ํ ์ ํ ์ ํ ์ฐ์์ผ๋ก ๋ฉ๋๋ค.
ํ์ง๋ง ๋ฌผ๋ฆฌ์์ง์ ์ปดํจํฐ ์ฌ์์ ๋ฐ๋ผ ๋ฐ๋๋ฉด ์๋๋, FixedUpdate()์ ๋ฃ์ด๋ผ๊ณ ํด์,
๊ทธ๋ ๊ฒ ํ๋๋ ์ ๋ชจ์์ ๋๋ค.
[ 2 ] GetButton ์ผ๋ก ํ ์คํธ ํด๋ดค๋๋, ์ ์์๋ ํฉ๋๋ค. ์คํ์ด์ค ๋๋ฅด๊ณ ์์ผ๋ฉด ์ ํ๊ฐ ์ฐ์์ผ๋ก ๋์ด์ ๋ ์๊ฐ๋๋ค.
GetButtonDown / GetButtonUp ์๋๋ค๋ง ์ง๋๋ง๊ฒ ์ฌ๋ฌ๋ฒ ์ฐํ ํด์ผ ํ๋ฒ ์ธ์ ๋ ๊น๋ง๊น์ ๋๋ค.
[ 3 ] ์ ๋ํฐ ๊ป๋ค ์ผ๋ ์ฆ์ ๋์ผํฉ๋๋ค.
๋์์ค์ธ์
์ ๋ ฅ์ Update์์ ๋ฐ๊ณ ์ ํ์ ๋ํ Flag ๊ฐ์ ๋ณํ์์ผ์คํ์ ์ค์ ์ ํ ๋ก์ง์ Flag๊ฐ์ ์ด์ฉํด FixedUpdate๋ ์ฝ๋ฃจํด์ ํตํด์ ์๋์์ผ๋ณด์ธ์
์ด์ ์์ํ ๋ด๋น๋ผ ์ ํฝ ๋ณด๊ณ ๋ฐ๋ผํ๋๋ฐ,
์ ์ ์ปด๋ง ์ด๋ชจ์์ด์ฃ ใ ใ ์ดํด๊ฐ ์ ์๋์ง๋ง ๋๊ธ ๊ฐ์ฌํฉ๋๋ค
ํน์ ์ด๋ค ๋ฌธ์ ๋ผ๊ณ ์๊ฐ๋์๋์
์ปดํจํฐ ๋ฌธ์ ๊ฐ ์๋๋ผ FixedUpdate์์๋ ์๋ Input์ ๋ฐ์ง ์๋๊ฒ ์ข์์ FixedUpdate๋ ๊ณ ์ ๋ ์๊ฐ๊ฐ๋ง๋ค ํธ์ถ์ด ๋๊ฒ ๋๋๋ฐ ํด๋น ์๊ฐ๊ฐ์ Input์ด ๋์ด์๋์ง ์๋์ง๋ฅผ ์ฒดํฌํ๋๊ฑฐ๋๊น FixedUpdate๊ฐ ๋์๊ฐ๋ ์๊ฐ์ ์ ํํ Input์ด ์ด๋ฃจ์ด์ง์ง ์๋ ์ด์ ํด๋น ์ธํ ๋ก์ง์ผ๋ก ํ๊ณ ๋ค์ด๊ฐ์ง ๋ชปํ๋๊ฑฐ์์
์ค!!!!! ์ดํด๋์์ต๋๋ค !! ๊ฐ์ฌํฉ๋๋ค !!!
Fixed๋ ๊ณ ์ ์ฃผ๊ธฐ๋ง๋ค ํธ์ถํด์ ํ ํ๋ ์์ ์ฌ๋ฌ๋ฒ ๋ถ๋ฆด์๋ ์๊ณ ์๋ถ๋ฆด์๋ ์์. ์ธํ ๋ฐ๋๊ฑด ์ ๋์์ ์ฒ๋ฆฌํ๋๊ฒ ๋ง๋๊ฑฐ ๊ฐ์๋ฐ. ๋๊ฐ ๋๋ฅผ๋ fixed๊ฐ ํธ์ถ ์๋ ํ๋ ์์ด๋ฉด ์ธ์ ์๋ ๋ฏ. ๋๋ฅด๊ณ ์์ผ๋ฉด ์นํ๋ ํ๋ ์ ์์ผ๋๊น ๋๋๊ฑฐ๊ณ
๊ทธ๋ฅ ์ธํ์์คํ ์ธ๋ผ์ด
FixedUpdate๋ก ๊ตณ์ด ํ๊ฒ ๋ค๋ฉด, GetButtonDown ๋์ GetButton ์ฐ๊ณ , GetButtonUp, GetButtonDown์ ์ง์ ์ฝ๋ ์ง์ผ๋จ. ๊ทธ๋ฆฌ๊ณ Edit > Project Settings > Time ๋ค์ด๊ฐ๋ฉด Fixed Timestep ์๋๋ฐ, ์ด๊ฒ FixedUpdate ์ฃผ๊ธฐ๊ฑฐ๋ ? ๊ทธ๊ฑฐ ์ซ์๋ฅผ ๋ ์ค์ด๋ฉด ๋ ์งง์ ์๊ฐ ์์ ๋ฒํผ ์กฐ์์ด ๊ฐ๋ฅํจ.
๋ GetButton ๋์ ์ธ๊ฒ์์์ ๋ฒํผ ๋ฐ๊ฟ ์ ์๊ฒ ํ ๋ผ๊ณ GetKey์