Unityに関連する記事です

 3D空間内の移動を左右移動のみに限定し、見た目は3Dですが、移動処理は2D移動として機能する処理を実装します。


<実装動画 
動画ファイルへのリンク


<実装動画◆
動画ファイルへのリンク



設計


 こちらの記事で紹介されている LineTrace アセットを活用して設計を行います。

参考サイト
HatenaBlog imog 様
Unityで3D横スクロールの挙動を考える
https://adarapata.hatenablog.com/entry/2016/12/15/...


LineTrace アセットをインポートする


 上記のサイト内のリンクより、Github に公開されている LineTrace アセットをインポートします。

Github
https://github.com/adarapata/LineTrace



UniRX アセットをインポートする


 アセットストアから、UniRx アセットをインポートしてください。

UniRx
https://assetstore.unity.com/packages/tools/integr...



シーンに Waypoint を設置する


 ゲームシーンは任意です。自分のゲームシーン内で作業を行ってください。

 シーン内に CraeteEmpty で空のゲームオブジェクトを作成し、Waypoint という名前に変更します。
この地点が移動の目標地点となりますので、複数の Waypoint を作成して設置してください。

 下記は参考画像です。


ヒエラルキー画像



Sceneビュー画像 ‐紊ら見下ろした場合



Sceneビュー画像◆_から見た場合




LineManager ゲームオブジェクトをルートの数だけ作成する


 CreateEmpty で空のゲームオブジェクトを作成し、先ほど作成した Waypoint ゲームオブジェクトをすべて格納し、子オブジェクトにします。
これが1つ分のルートになります。

 例えば、スタート地点やゴール地点が同じ場合で、途中の経路が異なるような分岐した移動を実装したい場合には、
そのルートのための Waypoint ゲームオブジェクトを作成し、ルート単位で LineManager ゲームオブジェクトを作成しておきます。

 この例では、2つのルートを作成しているので、2つの LineManager ゲームオブジェクト内に異なる位置に配置した Waypoint ゲームオブジェクトを子オブジェクトとして格納しています。


インスペクター画像



Sceneビュー画像




インスペクター画像



Sceneビュー画像



Move スクリプトを作成する


 Rigidbody コンポーネントによる移動を実装するため、参考にしているサイト内のスクリプトを参考に、別のスクリプトを作成します。


Move.cs

<= クリックすると開きます



プレイヤー用のゲームオブジェクトの設定を行う


 こちらのゲームオブジェクトも任意です。自分のゲームの主人公役(あるいは敵役)のゲームオブジェクトに
作成した Move スクリプトをアタッチしてください。


インスペクター画像




RootChanger スクリプトを作成する


 LineManager ゲームオブジェクトを利用し、異なるルートへの分岐機能を実装します。


RootChanger.cs

<= クリックすると開きます



RootChanger ゲームオブジェクトを作成し、RootChanger スクリプトをアタッチして設定を行う


 ヒエラルキーにて CreateEmpty を行い、新しいゲームオブジェクトを作成し、名前を RootChanger に変更します。

 こちらに先ほど作成した RootChager スクリプトをアタッチし、変数へのアサインを行います。





Cinemachine を作成して設定する


 カメラには Cinemachine を利用しますので、Unity の PackageManager より Cinemachine をインストールしてください。

 ヒエラルキーに新しい VirtualCamera を1つ作成します。

 LookAt の設定は None でも問題ありません。


インスペクター画像




ゲームを実行して動作を確認する


 以上の手順で完成です。
下記の動画を参考に、制御の確認を行ってください。

 現在はゲームが実行されるたびに RootChanger スクリプトでランダムなルートを選択するようになっていますが、
実際に利用する場合には、ルートの切り替えをする際には RootChanger スクリプトの SetLine メソッドの引数でルートの情報を設定してください。


<実装動画 
動画ファイルへのリンク


<実装動画◆
動画ファイルへのリンク




 以上になります。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます