0
私はこのC#スクリプトを、メインのカメラゲームオブジェクトに添付しています。このオブジェクトには、カプセルのcollider属性もあります。しかし、それは何もしていないようです。カメラを「ジャンプ」させて再び地面に落とすには、これをどのように変更/追加する必要がありますか?キーを押したときにゲームオブジェクトをジャンプさせるにはどうすればいいですか?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour {
[HideInInspector] public bool jump = false;
public float jumpForce = 1000f;
public Transform groundCheck;
private bool grounded = false;
private Rigidbody rb;
// Use this for initialization
void Awake()
{
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
if (Input.GetButtonDown("Jump") && grounded)
{
jump = true;
}
}
void FixedUpdate()
{
if (jump)
{
rb.AddForce(new Vector2(0f, jumpForce));
jump = false;
}
}
}
可能であれば、このキーのキーをスペースキーにしたいと思いますが、キーが機能しているかどうかは問題ありません。私はまだC#を学んでいるので、解決策が明らかであれば私を許してください。この行は、最も可能性の高い問題を引き起こしている
私はあなたの質問にコードがあることを理解していますが、あなたは質問の尋ね方のためにそれを書いていないと感じています。 Unityの仕組みを学ぶことをお勧めします。 [プロジェクトチュートリアル](https://unity3d.com/learn/tutorials)に従うだけで、独自のコードを書くことができます。 – Programmer
押さなければならないキーを変更するには、 'KeyCode.Space'を使います。 [this](https://stackoverflow.com/a/44539475/3785314)の投稿からジャンプの例を見ることができます。あなたが層を設定し、正しい層に地面を置く方法を知らないなら、それは動作しません。 – Programmer
@Programmer私は地面に地面を置きました。どこでKeyCode.Spaceを使用しますか?どのキーを使用するか設定する場所はありますか? – TrumpetDude