物理演算」カテゴリーアーカイブ

【Unity】どのドアを通過してどの部屋に出入りしたか判定する

どのドアを通ってどの部屋に出入りしたかを、トリガーを使って判定してみます。 まず簡単に部屋と出入り口を一つ作り、出入り口を挟むようにコライダーを2つ置きました。 コライダーはIs Triggerにチェックが入っていて、出… 続きを読む »

【Unity】爆発のダメージ判定をする

前の記事ではグレネードが爆発すると敵は毎回同じダメージを受けていましたが、転がったグレネードからの距離に応じてダメージ判定をして、敵の受けるダメージを変えてみます。 まずグレネードのスクリプトで敵との距離を調べてダメージ… 続きを読む »

【Unity】グレネードの爆発で敵を吹き飛ばす【物理】

グレネードを投げると数秒後に爆発して、敵やアイテムを吹き飛ばすようにします。 まず敵のスクリプトにパブリックなメソッドを作ります。 public void Explode(Vector3 center) { // 体力を… 続きを読む »

【Unity】連射の間隔を変える

マウスを押している間は弾を連射するようにして、その間隔を調節してみます。 弾を連射するには前の記事のスクリプトのInput.GetMouseButtonDownをInput.GetMouseButtonに変えるだけです。… 続きを読む »

【Unity】ラグドールに攻撃の力を加える

攻撃して敵が倒れた時に、その攻撃の力でラグドールが吹き飛ぶようにします。 敵を複製してラグドールを作ったので、敵とラグドールは全く同じボーンを持っています。敵の攻撃を受けたボーンの名前はわかるので、敵とラグドールの各ボー… 続きを読む »

【Unity】コライダーで攻撃の当たり判定を作る

攻撃の当たり判定をコライダーで作ってみました。まず敵と武器にコライダーを付けます。 刀にはタグとレイヤーを設定し、Rigidbodyも追加します。 レイヤーを使って、武器がプレイヤーと衝突できないように設定しました。 こ… 続きを読む »

【Unity】ボーンの位置を取得してラグドールの姿勢を変更する

今までは生成した直後のラグドールのポーズがデフォルトのままなので、敵がラグドールに置き換わった時に、敵の姿勢が急に伸びたように見えていました。 そこで、生成したラグドールの各ボーンの位置・角度を破壊する直前の敵の各ボーン… 続きを読む »

【Unity】敵をラグドールに切り替える

HPが0以下になった敵をラグドールに切り替えます。 まず敵のラグドールを作るために敵を複製して、アニメーターやナビメッシュエージェントなどのコンポーネントを削除して、オーディオソースコンポーネントだけを残しました。 これ… 続きを読む »

【Unity】スモークグレネードを作る

VFXグラフを使ってスモークグレネードを作ってみます。 まず、Blenderでスモークグレネードを作って、前の記事の手榴弾と同様にFPSキャラが投げれるようにしました。 そして、前の記事の煙のエフェクトの色やサイズを変え… 続きを読む »

【Unity】FPSで手榴弾を投げる

FPSコントローラーで手榴弾を投げてみます。 まずBlenderで手榴弾を作って前の記事の方法で手に持たせ、アニメーションを作りました。 手榴弾は右の手のひらのボーンの子オブジェクトになっています。ピンは手榴弾の子オブジ… 続きを読む »

【Unity】ハンドルで開閉するゲートに重力を加える

ハンドルを回して開閉するゲートに重力を加えます。前の記事では、マウスドラッグによってハンドルとゲートを両方動かしていましたが、今回はゲートだけを動かして、ゲートの速度を使ってハンドルを回転させてみました。 using S… 続きを読む »

【Unity】ハンドルを回転させてゲートを開け閉めする #2

ゲートの移動範囲がずれないように修正しました。 前の記事ではハンドルの回転だけを制限していましたが、ジョイントやコライダーの衝突を使ってゲートの動きを制限して、ゲートが制限まで達したときにハンドルを固定するようにします。… 続きを読む »

【Unity】ハンドルを回転させてゲートを開け閉めする #1

マウスドラッグでハンドルを回転させて、ゲートを開閉してみます。 前の記事のバルブを回す処理をバルブにつけるスクリプトで行います。 using System.Collections; using System.Collec… 続きを読む »