Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。2016.05.26今回はマウス操作で動く照準を作成し、敵を倒す機能を作成していきます。敵をマウスクリックで倒すゲームを作成する時、マウスに追従する照準のUIを作成しマウスポインタを非表示にするかまたはマウスポインタ自体を照準のテクスチャにしてしまう方法があります。今回はマウスポインタ自体を照準のテクスチャに変更し、敵をマウスで押した時に消すようにしてみます。銃と手の一部を表示したFPS(FirstPersonShooter)でも応用は利きますが、マウスポインタ自体を照準のテクスチャにする場合照準が一番手前に表示されてしまう為、銃や手の上に照準が表示されてしまいます。それの対処は後でやってみます。スポンサーリンク照準画像を用意してUnityに取り込み、設定を行うまずは照準の画像をUnityに取り込んでみます。ご自分で照準の画像を用意して頂くか、わたくしが作った照準を使ってください。Assetで画像を選択するか画像をUnityのAssetsメニューにドラッグ&ドロップします。Sizeを32に変更します。Cameraにカーソルを変更と敵を攻撃するスクリプトCursorShotScriptを作り取りつけます。{Destroy(hit.collider.gameObject);}}}Startメソッド内でCursor.SetCursorを使い自前のテクスチャをカーソルに設定します。第2引数にはテクスチャの左上からのオフセット値を指定します。カーソルの中心を画像の真ん中にする為に画像の横幅と縦幅の半分を第2引数に指定します。これで照準の真ん中がカーソルの真ん中となります。マウスの左ボタンを押した時に敵と当たっているか判定するShotメソッドを呼び出します。Camera.main.ScreenPointToRay(Input.mousePosition)123Camera.main.ScreenPointToRay(Input.mousePosition)でメインのカメラからレイ(線)をマウスの位置に飛ばします。Physics.RaycastでEnemyレイヤーに設定されているゲームオブジェクトコライダと接触した場合にそのコライダのゲームオブジェクトを消去しています。敵キャラクターにコライダを設定し、マウスを押して消えるか確認それではスクリプトの作成が終わったので、敵キャラクターを設置し、敵キャラクターにコライダを設定してください。敵キャラクターのレイヤーをEnemyに設定します。(レイヤーがない場合は作成してください)上の画像のようになりました。CursorShotScriptのインスペクタのcursorにさきほど取り込んだ照準を設定します。それではUnityの実行ボタンを押して確認してみます。上の動画のようにマウスカーソルの変更とマウスで敵を倒す事が出来るようになりました。FPS風に銃を配置してみるでは少しFPS風に銃を登場させてみます。Storeで探します。A3を探し、インポートします。Factorを変更し、キャラクターのサイズと合うように調整します。上のように銃のサイズ、位置を変更し表示します。銃のモデルが途中から表示されてしまう場合は銃がカメラの表示から近すぎる位置に配置されているかもしれません。PlaneのNearの設定でカメラの描画範囲で描画を始める一番近い距離を指定出来るので、その数値を小さくします。銃の向きをマウスカーソルの方向へ向かせる処理を追加する銃はマウスカーソルの位置の方向を向かせたいのでCursorShotスクリプトのUpdateメソッドに処理を追加します。Cameraに取り付けていたCursorShotScriptを銃のゲームオブジェクトに設定するようにします。{Shot();}}メインのカメラからマウスの位置にレイを飛ばしray.directionでレイの方向を取得します。Quaternion.LookRotationで方向の角度が取得出来るので、その角度を銃の角度に設定します。これで銃がマウスカーソルの方向を向くようになります。マウスカーソルが銃の手前に表示されてしまう問題それでは銃の処理も出来たので確認してみます。照準が銃の手前に表示されてしまっています。これは照準がマウスカーソルという事を思い出すとわかりますが、マウスカーソルなのでどんなゲームオブジェクトより手前に表示されます。銃とマウスカーソルが被ったらマウスカーソルを非表示にするこれでは困るので、銃にコライダを設定し、マウスカーソルが銃のコライダと被った場合は非表示にするようにします。銃にコライダを追加します。Colliderを作成します。↑のように値を設定しました。マウスカーソルと銃が重なったらマウスカーソルを非表示にする処理を追加あとはマウスカーソルが銃のコライダと被ったかどうかを確認し非表示にする処理をCursorShotScriptに追加します。falseとしてマウスカーソルを非表示にします。Gunレイヤーと接触していない場合はマウスカーソルを表示しています。これで処理が完成したので、Unityの実行ボタンを押して確認してみましょう。上のように銃とマウスカーソルが被った場合はマウスカーソルが見えなくなりました。これでUnityのアクションゲームで照準をマウス操作で動かす機能が完成しました。コピーかめくめちゃんをフォローする7Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)関連記事プログラムUnityにテキストファイルを取り込んでスクリプトから読み込むUnityにテキストファイルを取り込んでスクリプトから読み込みこんで使用してみます。スクリプト内にテキストをいっぱい書きこむより管理が楽になります。プログラムUnityでRPGゲームのワールドマップに敵を自動生成する機能UnityでRPGゲーム等のワールドマップに敵を自動で敵を配置する機能を作成します。プログラムUnityのゲームで2段階ジャンプの機能を作成するUnityのアクションゲームで2段階ジャンプの機能を作成します。ジャンプ中にジャンプキーが押されたらそこからさらにジャンプ出来るようにします。プログラムUnityで連続、複数のQTEに対応するUnityで連続してQTEを出現させたり、複数のQTEを同時に表示する機能を作成していきます。プログラムUnityでキャラクターや武器のステータスを保持する機能Unityでキャラクターそれぞれが自分のステータスを管理するようにします。敵のHPが0以下になったら倒れるようにします。プログラムUnityの敵キャラクターが目的地に到達出来なければ違う場所を目的地にするUnityの敵キャラクターが目的地に到達出来なければ違う場所を目的地にするUnityのJavaScriptでクラスの作成と継承、インタフェースの作成Unityのアクションゲームで攻撃時に敵の方向をむかせる機能ホームプログラムスポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。