Cで文字ジャンプを実装しようとしています しかし、私は彼にジャンプボタンを押したままにする方法によって、異なる高さにジャンプします。
たとえば、瞬時にスペースをヒットした場合、あなたはあまりにも高くジャンプしません 反対に、キャラクターは高くジャンプしますが、高さは高くなります。私は右のジャンプの途中で力を追加しようとしているUnity5:2D Platformer:異なる高さでジャンプする
private Rigidbody2D rb;
private Transform lowerPoint;
private new SpriteRenderer renderer;
private Animator anim;
private Transform spawPosition;
[SerializeField]
float speed = 3f;
[SerializeField]
float jumpForce = 3f;
[SerializeField]
Image backgroundImage;
[SerializeField]
LayeredSpikes script;
float secondJumpForce;
[SerializeField]
float additionalVelocity;
const float ADDITION_VELOCITY_LIMIT = 0.9f;
bool isGrounded;
bool isAlive;
bool hasSecondJump;
void Awake()
{
rb = GetComponent<Rigidbody2D>();
renderer = GetComponent<SpriteRenderer>();
lowerPoint = GetComponentInChildren<Transform>();
anim = GetComponent<Animator>();
spawPosition = GameObject.FindGameObjectsWithTag ("Respawn")[0].GetComponent<Transform>();
}
void Start()
{
ResetVelocity();
isGrounded = false;
isAlive = true;
hasSecondJump = true;
Spawn();
secondJumpForce = jumpForce * 0.75f;
}
void Update()
{
if (isAlive)
{
if (isGrounded)
{
AnimState = AnimationState.Idle;
hasSecondJump = true;
additionalVelocity = 0f;
}
if (Input.GetButtonDown ("Jump"))
{
Jump();
}
if (Input.GetButton ("Jump")
&& additionalVelocity <= ADDITION_VELOCITY_LIMIT)
{
additionalVelocity += ADDITION_VELOCITY_LIMIT/3;
rb.AddForce(Vector2.up * additionalVelocity);
}
if (Input.GetButton ("Horizontal"))
{
Run();
}
}
}
private void Jump()
{
AnimState = AnimationState.Jump;
float force;
if (isGrounded)
{
force = jumpForce;
}
else
{
if (hasSecondJump)
{
ResetVelocity();
force = secondJumpForce;
hasSecondJump = false;
}
else
{
force = 0f;
}
}
rb.AddForce (Vector2.up * force, ForceMode2D.Impulse);
if (force != 0f)
{
//script.Trigger();
}
}
void ResetVelocity()
{
rb.velocity = Vector2.zero;
additionalVelocity = 0f;
}
、ない結果:
はここに私のコードです。一見、私はあなたのブール変数がを接地さ
まあ、プレイヤーがジャンプすることができ、私がチェックしました。レベルプレーヤーの最初の段階では、スポーンポジションは空中にあり、問題はありません。 私は自分の問題を説明できないかもしれないので、理解することができます。キャラクターはスムーズに動くことができますが、固定された高さにしかありません。 2番目のジャンプと同じ状況。 ジャンプボタンを少し押してプレイヤーが少しジャンプすることができたらいいと思いますが、スペースを押すたびにキャラクターが同じ力で空中に浮かびます。これが私がアップグレードしたいものです。 ありがとう(: –
私は忘れているかもしれませんが、FixedUpdateメソッドがあり、Physics2Dクラスを使用して文字が接地されているかどうかを確認します) なぜここに記載されていないのか分かりません。 –