最初にすべて私の質問を読んでくれてありがとう 地下鉄のような常時稼働しているゲームのために私はupdate()
機能を開始しましたpayerControl
スクリプトpyは剛体を前進させるコードでmintiondとして10のスピードでキーボード上のupArrowを押すとジャンプ入力が追加されましたが、ここでの問題は時々ジャンプし、ジャンプブール値が真になるためにほとんどの時間ジャンプしません1秒未満で偽に戻ると、ジャンププロセスを2秒間続けるような方法がありますか?ユニティ5文字飛び越し
キャラクタ制御コード:
using UnityEngine;
using System.Collections;
public class player : MonoBehaviour {
public Animator anim;
public Rigidbody rbody;
public float verticalJumpPower;
public float horizantalJumpPower;
public float playerVelocity;
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
rbody = GetComponent<Rigidbody>();
verticalJumpPower = 50f;
horizantalJumpPower = 30f;
playerVelocity = 10f;
}
// Update is called once per frame
void Update()
{
rbody.velocity = new Vector3(rbody.velocity.x,rbody.velocity.y,playerVelocity*Time.deltaTime);
rbody.transform.rotation = Quaternion.identity;
if(Input.GetKeyDown (KeyCode.UpArrow))
{
anim.SetBool("jump",true);
rbody.AddForce(new Vector3(0,verticalJumpPower,horizantalJumpPower));
}
else
{
anim.SetBool("jump", false);
}
if(Input.GetKey(KeyCode.LeftArrow))
{
Vector3 currentPosition = rbody.transform.position;
Vector3 leftPosition = new Vector3(rbody.transform.position.x+Constants.PLAYER_LEFT_DISTANCE, rbody.transform.position.y,rbody.transform.position.z);
rbody.transform.position = Vector3.Lerp(currentPosition,leftPosition,Time.deltaTime);
}
if(Input.GetKey(KeyCode.RightArrow))
{
Vector3 currentPosition = rbody.transform.position;
Vector3 rightPosition = new Vector3(rbody.transform.position.x+Constants.PLAYER_RIGHT_DISTANCE, rbody.transform.position.y,rbody.transform.position.z);
rbody.transform.position = Vector3.Lerp(currentPosition,rightPosition,Time.deltaTime);
}
if(Input.GetKey(KeyCode.DownArrow))
{
anim.SetBool("isSlide",true);
rbody.velocity = new Vector3(0f, 0f,5f);
anim.applyRootMotion = false;
}
else
{
anim.SetBool("isSlide", false);
anim.applyRootMotion = true;
}
}
}
おそらく必要なものキャラクタが接地されたときを検出し、 'anim.SetBool(" jump "、false)'のみを設定するロジックです。このチェックを実行する方法にはたくさんのアイデアがあります。検索したり、実装したり、新しいコードでこの質問を更新するのに問題がある場合(または新しい質問が大幅に異なる場合は質問してください)などです。現時点では、この質問はあまりにも広すぎます。基本的には、あなたのゲームオブジェクトがどのように設定されているかを推測し、ロジックをゼロから書く必要があるからです。 – Serlite
また、ジャンプアニメーションとは何ですか?それは、キャラクターが空中にいる限り、またはキャラクターが最初のジャンプを実行している間だけ再生すべきものですか?それはまた、これが必要とする解決策に影響を与えます。 – Serlite