2 Dプレーヤーのジャンプを実現
プレイヤーのジャンプを実現
資源は金金属資源を用いた.
力を入れるとずっと力を入れるので真ん中は落ち着く(?)注文しなければ弾丸より速いスピードで屋根を蹴ることができます.このような事態を防止するためには、最大速度(
y軸の速度が2479142未満の場合にのみ力を入れ、大きい場合は無条件の速度で最大速度に達すればよい.
資源は金金属資源を用いた.
void Update()
{
//Jump 할 수 있는지 없는지
jumpCheck();
}
まず、Update文でjumpCheck
関数を呼び出します.void jumpCheck()
{
if (Input.GetButtonDown("Jump") && jumpCount < jumpCountMax)
{
jump();
}
if (isGround && jumpCount >= jumpCountMax)
jumpCount = 0;
}
jumpCount
変数(値2)を用いて2段以上のジャンプを阻止する.void GroundCheak()
{
RaycastHit2D rayhit = Physics2D.Raycast(rigid.position, Vector2.down, 1, LayerMask.GetMask("Platform"));
if (rayhit.collider != null)
{
isGround = true;
}
else
{
isGround = false;
}
}
Raycastで床をチェックpublic void jump()
{
if (rigid.velocity.y < maxForce) //y속도가 최대 속도보다 적을 때
{
rigid.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); //위로 jumpForce만큼 힘을 준다
}
else //그렇지 않을 때
{
//y속도를 maxForce(최대 속도)만큼만 준다.
rigid.velocity = new Vector2(rigid.velocity.x,maxForce); //y속도를 maxForce(최대 속도)만큼만 준다.
}
jumpCount++;
}
AddForceの特性上
力を入れるとずっと力を入れるので真ん中は落ち着く(?)注文しなければ弾丸より速いスピードで屋根を蹴ることができます.このような事態を防止するためには、最大速度(
maxForce
)を決定しなければならない.y軸の速度が2479142未満の場合にのみ力を入れ、大きい場合は無条件の速度で最大速度に達すればよい.
Reference
この問題について(2 Dプレーヤーのジャンプを実現), 我々は、より多くの情報をここで見つけました https://velog.io/@stingray/2D-플레이어-점프-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol