Unityエンジンのタワーディフェンス-パート1

みなさんこんにちは! これはHabrの私の最初の記事であり、初心者を対象としています。 その中で、UnityエンジンでTower Defenseジャンルの小さな3Dゲームを作成する方法についてお話したいと思います。



私は、あなたのように、このエンジンを研究しています。 私はあなたと勉強し、間違いを犯すことができます。 記事が面白い場合は、猫へようこそ! 注意してください、たくさんの写真があります...



画像






パート1 パート2



開始する



Unityを実行します。 Unity Personalがあります。 「MyTowerDefence」という新しいプロジェクトを作成します。 ゲームは3次元になり、Unity分析は使用しません。



画像






ワークスペースをセットアップしました。都合がいいので、すべてをそのままにしておくことができます。 新しい3次元プロジェクトを作成すると、カメラと光源がデフォルトで作成されます。 2次元プロジェクトでは、カメラのみが存在します。



3つの新しいフォルダーを作成します。





画像






ものみの塔



メインメニューで[GameObject-> Cube]を選択して、新しいゲームオブジェクトキューブを作成します。 英語の「Body」から「Body」に翻訳した新しい名前を付けましょう。 これが望楼の本体になります。



次に、空のオブジェクトを作成します。 彼はステージでは見えません。 それを「タワー」-「タワー」と呼びましょう。 この場合、それはものみの塔のメインオブジェクトになります。 作成されたオブジェクトの位置はゼロに設定されます。



画像






「Body」オブジェクトを「Tower」オブジェクトに投げます。



画像






体は塔の子になりました。 子オブジェクトの位置、回転、スケールは、親オブジェクトの同様のパラメーターに依存します。 簡単に言えば、親オブジェクトをドラッグすると、すべての子オブジェクトがその親に従います。



タワー本体のスケールを変更します。



画像






新しいキューブオブジェクトを作成します。 位置をゼロに設定し、Y座標に沿ってわずかに平らな立方体を設定します。



画像






キューブを「Head」-「Head」と呼びます。 頭を所定の位置に置き、「タワー」オブジェクトに接着します。



画像






今、私たちは銃が必要です。 「Gun」-「Cannon」という名前の新しいキューブを作成します。 キューブがリモートでも似ているように作成します。



画像






銃の回転中心となる別の補助オブジェクトが必要です。 空のオブジェクトを作成し、Gunオブジェクトをそれにバインドします。 そして、それを「タワー」オブジェクトに結び付けます。



画像






ガンの位置を調整します。



画像






画像






任意の名前でシーンを保存します。 シーンを保存するフォルダーを作成し、作成したシーンをそこに配置します。 さあ、美しさをもたらしましょう。 マテリアルフォルダで、「TowerBody」という名前の新しいマテリアルを作成します。



画像






色を設定し、プロジェクトウィンドウからオブジェクトにドラッグして、タワーボディにマテリアルを適用します。



画像






新しい名前「TowerHead」でマテリアルを複製します。 頭に対しても同様のアクションを実行します。 銃についても行います。

それだけです、彼らは美しさをもたらしました。



画像






ものみの塔の回転をシミュレートしてみましょう。 ここですぐに欠陥を見つけます。 頭が回転し、銃はそれ自体で忙しい。



画像






銃の補助オブジェクトをオブジェクト「Head」に移動して、ヘッドとともに回転させます。



画像






銃を回します。 そして、ここでは不可解なものが見えます...(メロディー "X-Files")



画像






さて、スクリプトを使用して大砲を回転させるときに、これに戻ります。 TowerオブジェクトからPrefabsフォルダーにドラッグして、新しいプレハブを作成します。



画像






元のタワーがシーンから削除されます。



戦場



平面オブジェクトを作成します。 パーティー全体が飛行機で行われます。 任意の素材を適用できます。



画像






カメラの位置を変更して、平面全体が斜めに見えるようにします。



画像






飛行機の名前を「Ground」に変更します。



望楼を設置できるプラットフォームが必要です。 これを行うには、立方体を作成し、位置をゼロにしてY軸に沿って平らにし、シャドウキャストをオフにします。 キューブに「TowerPlace」という名前を付けましょう。



画像






プレハブフォルダーに配置します。 CTRL + Dを押して、ステージ上でオブジェクトを複製します。 次に、Ctrlキーを押しながらオブジェクトを横にドラッグします。 このアクションでは、オブジェクトの新しいコピーをスナップを介してグリッドにドラッグしました。これにより、オブジェクトを同じステップ長で移動できます。 これで、グリッド間隔は1に等しくなりました。



画像






ところで、これはプレハブの興味深い機能です。 今のようにオブジェクトのサイズを変更し、「適用」ボタン-「適用」をクリックすると、このプレハブの新しいパラメーターがそのすべてのコピーに適用されます。



画像






次に、オブジェクトのコピーで平面全体を塗りつぶす必要があります。 ああ、そうだ、私は飛行機の位置をゼロに設定するのを忘れていた。これが理由で、すべてが曲がって表示されている。



画像






同じ理由でカメラが配置されていません。 タワーのロケーションオブジェクトを格納する新しい空のTowerPlacesオブジェクトを作成します。



画像






次に、TowerPlaceオブジェクトを削除するだけで、ボットの動きのトラックを作成しましょう。



画像






ウェイポイント



ウェイポイントの空のオブジェクトを作成します。 ウェイポイントは、ボットが移動するルート上のポイントです。 位置をゼロに設定します。 非表示オブジェクトのアイコンを設定して、エディターウィンドウで表示できるようにします。



画像






Y軸に沿ってオブジェクトを持ち上げて、平面と結合しないようにします。 どれだけ多くても、主なことはX座標とZ座標に触れないことです。それらはゼロでなければなりません。



画像






これをプレハブフォルダーにドロップし、CTRLキーを押しながら元のファイルをパスの先頭に移動します。 オブジェクトの座標に注意してください。X軸とZ軸で整数値を保持します。



画像






Ctrlキーを押しながら、ウェイポイントを複製し、ターンの端に配置します。 最後までやります。



画像






すべてのウェイポイントを空のオブジェクトに配置します。



画像






位置の順序を確認することが重要です。そうしないと、ボットが好きな場所を歩き始めます。



スポーナー



スパナとして機能するキューブを作成します。 ステージでボットを作成します。 位置をゼロにして、オブジェクトをパスの先頭の前に置きます。 スケールは自由に変更できます。



画像






マテリアルフォルダーで、新しいマテリアルを作成します。 スポーナーに割り当てます。 美しくなりつつあります。



画像






scriptsフォルダーで、「Spawner」という新しいスクリプトを作成します。 スクリプトをダブルクリックして、コードエディターに移動します。 コードエディターには、Visual Studio、MonoDevelop、または通常のノートブックを使用できます。 これは、便宜上の場合のみ、スクリプトの操作に影響を与えません。 そしてUnityエディターはエラーを表示します。



最初の部分の完了



エンジンの5番目のバージョンでは、Visual Studioがデフォルトで使用されますが、必要に応じて、Unityエディターの設定で開発環境を変更できます。



画像






より明確にするために、ビデオチュートリアルを見ることができます:







PS:質問や提案がある場合は、動画の下にYouTubeでコメントを残してください。

ハブラーではコメントを読みません。



多くの人が記事とビデオがこのチャンネルのレッスンに似ていることに気づいています 。 一部からそうです。 しかし、私はウェイポイントの配置とレベルの構築のみを借りました。



ご清聴ありがとうございました! 最初の部分の終わり。



All Articles