【Unity】長押し中に作動させて進行度をゲージに表示する
左クリックを長押ししている間に作動するものを作って、その進行度を進行バーで表示します。進行中はアニメーションさせて音声を鳴らし、終了すると別の音を鳴らします。 まずCubeにコライダーとスクリプト、アニメーター、オーディ… 続きを読む »
左クリックを長押ししている間に作動するものを作って、その進行度を進行バーで表示します。進行中はアニメーションさせて音声を鳴らし、終了すると別の音を鳴らします。 まずCubeにコライダーとスクリプト、アニメーター、オーディ… 続きを読む »
開始時などに真っ暗な画面から徐々にカメラの映像をフェードイン・フェードアウトさせてみます。 まずCanvasとImageオブジェクトを作って、CanvasのUI Scale ModeをScale With Screen … 続きを読む »
たくさんのキャラの足音を鳴らすと、足音のタイミングでBGMや長い効果音が小さくなったりして不安定になったので、プレイヤーから遠いキャラの足音は鳴らさないようにしてみました。 void Footsteps() { if (… 続きを読む »
アニメーションイベントを使ってNPCの足音を鳴らしてみます。まずキャラクターのFBXファイルのインポート設定のAnimationタブで歩くアニメーションを選択して、下の方のEventsを見てみます。 Eventsの横の三… 続きを読む »
動画の再生中にキー入力で停止/再生し、動画が終わると自動で次のシーンをロードするようにしました。 using System.Collections; using System.Collections.Generic; u… 続きを読む »
ドロップダウンを使って設定を変更してシーンが変わる時に保存し、戻ってきた時にも同じ値が選択されているようにします。 まずドロップダウンを作って項目やイベントを設定します。 DropdownコンポーネントのValueが今選… 続きを読む »
建物などは頂点数の多いものと少ないもの、中間のものの三種類を作って、多い順にLODグループコンポーネントにLOD0、LOD1、LOD2の順に割り当てることで、遠くのものは詳細に表示しないようにしています。 それでも建物を… 続きを読む »
テレインレイヤーによって足音を変えてみました。前の記事の方法でアルファマップを取得して、一番割合の多いテレインレイヤーを調べます。 float[] slatmap = new float[0]; // — // Fi… 続きを読む »
テレインのプレイヤーが立っている場所にどのテレインレイヤーがどのくらい塗られているかを調べてみます。 FirstPersonControllerクラスのFixedUpdate()で地面に向かって球体のレイを飛ばすので、そ… 続きを読む »
シーンの開始と共にメインのゲームのシーンを非同期で読み込んで、スタートボタンが押されたら遷移し、キャンセルが押されるとスタートメニューなどの別のシーンに遷移してみました。 using System.Collections… 続きを読む »
Visual Studio(2017)で関数の使い方を簡単に調べる方法がありました。関数名の後に左側のカッコ “(” を入力すると下に戻り値や引数の型などが表示されます。右側のカッコも自動で入力さ… 続きを読む »
タイムラインのオーディオトラックを使えば、ドラッグアンドドロップしたオーディオクリップを時間に沿って順に再生できますが、シグナルトラックを使って、決められたタイミングでランダムに選んだ音声を再生できるようにしてみました。… 続きを読む »
前の記事ではグレネードが爆発すると敵は毎回同じダメージを受けていましたが、転がったグレネードからの距離に応じてダメージ判定をして、敵の受けるダメージを変えてみます。 まずグレネードのスクリプトで敵との距離を調べてダメージ… 続きを読む »
グレネードを投げると数秒後に爆発して、敵やアイテムを吹き飛ばすようにします。 まず敵のスクリプトにパブリックなメソッドを作ります。 public void Explode(Vector3 center) { // 体力を… 続きを読む »
UnityのVFXグラフでマズルフラッシュを作ってみました。 パーティクルが一つずつ出るようにする 銃弾を発射するときにPlay()を呼んでエフェクトを再生します。この時に一つずつパーティクルが出るようにしたいので、Si… 続きを読む »
リロードのアニメーションを作ってアニメーターコントローラーに設定してみました。 まずBlenderで作ったアニメーションをインポートして、アニメーターコントローラーの新しいステートにアタッチしました。アニメーションはブレ… 続きを読む »
毎回狙ったところへまっすぐ飛ぶのも変だと思ったので、銃弾が飛ぶ方向をばらつかせてみました。 // ステートマシンのスクリプト [SerializeField] float dispersion = 0.02f; // ば… 続きを読む »
弾数を制限して、弾を発射するたびに一つ減らしていき、0になったら撃てなくします。前の記事のスクリプトに少し加えるだけでできます。 using System.Collections; using System.Collec… 続きを読む »
マウスを押している間は弾を連射するようにして、その間隔を調節してみます。 弾を連射するには前の記事のスクリプトのInput.GetMouseButtonDownをInput.GetMouseButtonに変えるだけです。… 続きを読む »