【Unity】弾の種類を切り替える
銃のオブジェクトがマガジンのオブジェクトを持つようにして、簡単に弾の種類を切り替えてみました。 まず、マガジンと弾のクラスを作って、それらを継承した赤い弾の入ったマガジンクラスと青い弾の入ったマガジンクラスを作りました。… 続きを読む »
銃のオブジェクトがマガジンのオブジェクトを持つようにして、簡単に弾の種類を切り替えてみました。 まず、マガジンと弾のクラスを作って、それらを継承した赤い弾の入ったマガジンクラスと青い弾の入ったマガジンクラスを作りました。… 続きを読む »
Decal Projectorコンポーネントを使って、オブジェクトの表面に弾痕を残してみました。 まず、背景が透明な画像を用意して、デカールシェーダーを選択したマテリアルにアタッチしました。 Decal Projecto… 続きを読む »
UnityのVFXグラフでマズルフラッシュを作ってみました。 パーティクルが一つずつ出るようにする 銃弾を発射するときにPlay()を呼んでエフェクトを再生します。この時に一つずつパーティクルが出るようにしたいので、Si… 続きを読む »
リロードのアニメーションを作ってアニメーターコントローラーに設定してみました。 まずBlenderで作ったアニメーションをインポートして、アニメーターコントローラーの新しいステートにアタッチしました。アニメーションはブレ… 続きを読む »
毎回狙ったところへまっすぐ飛ぶのも変だと思ったので、銃弾が飛ぶ方向をばらつかせてみました。 // ステートマシンのスクリプト [SerializeField] float dispersion = 0.02f; // ば… 続きを読む »
弾数を制限して、弾を発射するたびに一つ減らしていき、0になったら撃てなくします。前の記事のスクリプトに少し加えるだけでできます。 using System.Collections; using System.Collec… 続きを読む »
マウスを押している間は弾を連射するようにして、その間隔を調節してみます。 弾を連射するには前の記事のスクリプトのInput.GetMouseButtonDownをInput.GetMouseButtonに変えるだけです。… 続きを読む »
発射した弾がどこかに当たるたびに、その後敵に当たったときのダメージを小さくしてみます。 敵の体のボーンに付けたスクリプトで、インスペクタで設定したダメージと弾の威力をかけて、実際に敵が受けるダメージを計算します。跳ねるた… 続きを読む »
Unityでチャージショットを撃ってみます。 マウス左クリックを押すとチャージが始まって、離すと発射します。 Sphereオブジェクトをプレハブ化して、Rigidbodyをつけます。 以前の記事で作ったカメラの方向へ玉を… 続きを読む »
マガジンのアイテムを拾うと、銃の残弾数が増えるようにします。 まずマガジンのオブジェクトを新規作成して、コライダーとRigidbodyと新規スクリプトを付けました。 今回は衝突しないようにIs Triggerにチェックを… 続きを読む »
弾数に制限をかけて、残りの弾数が0になるとリロードできないようにします。 using System.Collections; using System.Collections.Generic; using UnityEn… 続きを読む »
弾数を表示します。0になると弾を発射できなくなり、リロードすると弾数が増えて撃てるようになります。 using System.Collections; using System.Collections.Generic; … 続きを読む »
右クリックで銃の照準器を覗き込んだ時に視野を少し狭めます。 FPSコントローラについているFirstPersonCharacterがプレイヤーの頭です。 これにはCameraコンポーネントがついており、Field of … 続きを読む »
Blenderで作った地球儀のモデルを部位ごとにバラバラに壊してみます。 一つのオブジェクトになっているので、まずBlenderで複数のオブジェクトに分割していきます。 Edit Modeで切り離したい部分だけを選択しま… 続きを読む »
小さなCube同士をジョイントでつなげて、銃で撃つと壊れる大きなCubeを作ります。 まず小さいCubeをジョイントでつなげてみます。 どちらもBoxコライダーとRigidbodyが付いています。 白いCubeは落下せず… 続きを読む »
右クリックで照準器を覗き込むアニメーションを付けます。 まず銃のオブジェクトを選択して、AnimationウィンドウでCreate New Clip…をクリックし、新規アニメーションの名前を付けて保存します。… 続きを読む »
銃弾を連射するにはコルーチンを使います。 private IEnumerator Shoot() { while (true) { yield return new WaitForSeconds(rate); Insta… 続きを読む »
前の記事でインポートした銃のアセットにはデフォルトでアニメーションが付いています。 銃のアニメーターコンポーネントのControllerをダブルクリックすると、アニメーターコントローラーが表示されます。 Aキーを押すと全… 続きを読む »
リアル銃をFPSコントローラーに持たせて撃ってみます。 アセットストアで銃を検索するとたくさんのアセットが出ます。 無料のものを適当にダウンロード&インポートしてみます。 プレハブから一つ選んでシーンに配置しました。 ス… 続きを読む »