【Unity】AddForceでジャンプさせてみた。

Unityプログラミング
スポンサーリンク
今回はプレイヤーキャラにジャンプ機能を付けたのでそのコードを紹介していきたいと思います。はっきりいって全然進んでないですね(´・ω・`)。
今までやったコードといえば
キャラクターの移動
プレハブ化してコインと矢の雨を降らせる
HPとscoreをUGUIでつけた
こんなことくらいしかしていない、そして今回はジャンプ機能だけ・・
スポンサーリンク

AddForceでジャンプさせる

今まではtranformで強制的に移動させていましたが、今回は物理エンジン、いわゆる力と速度を加えて移動させる方を取り入れました。というかほぼ参考書丸パクリだけど・・
でもジャンプとかコードは決まってるようなものだから、ということでコードはこんな感じです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class Player : MonoBehaviour { Rigidbody2D rbody; float vx = 5; float jumpForce = 400; // Start is called before the first frame update void Start() { rbody = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update() { if (Input.GetKey("left")){ transform.Translate(-vx/50, 0, 0); } if (Input.GetKey("right")) { transform.Translate(vx/50, 0, 0); } if (Input.GetKeyDown("space") && rbody.velocity.y == 0) { rbody.AddForce(transform.up * jumpForce); } } }
spaceを押したらy方向にaddforceで力が加わります。
そしてそれだけだと空中でもジャンプできてしまうので、スペースを押してなおかつvelocity yに力が加わらなかったらジャンプができるという感じです。
あとHPコードも書いて(前書いたのとほぼ同じstatic)敵に触れたら(void on collider2D)HPが減るという感じです。
というわけで今回はこれにて終幕です、本当に全然進んでなくて何してるんだって感じですね、次回は縦スクロール移動、TAG設定、scean切り替えくらいはやりたいです(´・ω・`)。

コメント