前提・実現したいこと
ここに質問の内容を詳しく書いてください。
unityで接地判定を書いていたのですがなぜかエラーが出てしまってこのエラーってどうすれば直りますか?なぜ出たのかも教えてくださいお願いします
発生している問題・エラーメッセージ
エラーメッセージ NullReferenceException: Object reference not set to an instance of an object PlayerBan.Update () (at Assets/Bandits - Pixel Art/Scripts/PlayerBan.cs:77)
該当のソースコード
ここに言語名を入力unity C#
ソースコード
#region//インスペクターで設定する
[Header("速度")] public float speed;
[Header("ジャンプ速度")] public float jumpSpeed;
[Header("重力")] public float gravity;
[Header("ジャンプ制限時間")] public float jumpLimitTime;
[Header("ジャンプの高さ")] public float jumpHeight;
[Header("接地判定")] public GroundCheck ground;
//[Header("頭をぶつけた判定")] public GroundCheck head;
[Header("ダッシュの速さ表現")] public AnimationCurve dashCurve;
[Header("ジャンプの速さ表現")] public AnimationCurve jumpCurve;
[Header("ジャンプする時に鳴らすSE")] public AudioClip jumpSE;
[Header("やられた時のSE")] public AudioClip downSE;
[Header("コンティニューしたときのSE")] public AudioClip continueSE;
void Update() { ここが77行目です→ m_grounded = ground.IsGround(); float X = Input.GetAxisRaw("Horizontal"); //各種座用軸の速度を求める float xSpeed = GetXSpeed(); float ySpeed = GetYSpeed(); anim.SetFloat("AirSpeed", rb.velocity.y); //Run if (Mathf.Abs(X) > Mathf.Epsilon) anim.SetInteger("AnimState", 2); //Combat Idle else if (combatIdle) anim.SetInteger("AnimState", 1); //Idle else anim.SetInteger("AnimState", 0); Movement(); }
下からGroundCheckのスクリプトです private string groundTag="Ground"; private bool isGround = false; private bool isGroundEnter, isGroundStay, isGroundExit; public bool IsGround() { if (isGroundEnter || isGroundStay) { isGround = true; } else if (isGroundExit) { isGround = false; } isGroundEnter = false; isGroundStay = false; isGroundExit = false; return isGround; }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Header("接地判定")] public GroundCheck ground;設定はしてます77行目でエラーと出ていてチェックしたのですがうまくいかなくて編集追加依頼してくださってありがとうございます初めて使ったので勝手がわからずすいませんでした確かにインスペクターで設定していませんでした
回答1件
あなたの回答
tips
プレビュー