# 作業記録(ナビゲーション制作) ## 12/7 ナビゲーションマップを作成する方法を学習した。 敵や味方の位置を示すオブジェクトだけを表示させる。 このオブジェクトをポインタとする。 上空からポインタを表示する。 * 「作成」→「レンダーテクスチャ」を選択して新しいRender Textureを作成 * canvasを作成し、Navigationと名前を付ける * カメラを作成し、プレイヤー上空に配置 * TargetTextureを作成したテクスチャに設定 * RawImageを作成 * add componentからMaskを選択 * この子オブジェクトとして、RawImageを作成 * Textureを作成済みのテクスチャに設定(カメラに設定したものと同じ) メインカメラにポイントを見えなくする。 * 新規Layerを作成、navigationとする * メインカメラのCulling Maskでnavigationのチェックを外す 作ったカメラをNavigationCameraとする。 ## 12/9 建物をナビゲーションマップに投影した。 ポイントが建物の影二ならないように設定した。 * 建物に設定されているレイヤーをNavigationCameraで選択する * ポイントのインスペクターからReceiveShadouwsのチェックを外す NavigationCameraをプレイヤーに追尾させる * NavCameraControlスクリプトを作成 ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class NavCameraControl : MonoBehaviour { private GameObject Player; Vector3 pos; // Start is called before the first frame update void Start() { Player = GameObject.Find("Player"); } // Update is called once per frame void Update() { pos = Player.transform.position; transform.position = new Vector3(pos.x,100, pos.z); } } ``` * 建物を別レイヤーに分ける(buildingレイヤ―を作成) * NavigationCameraにポイントと建物、地面だけにする プレイヤーのポイントを矢印に変更する。(向いている方向がわかりやすいように) * 矢印の透過画像をplayerの子オブジェクトに配置 * 画像を入れているcanvasをワールドポジション設定に変更し、プレイヤーの位置に移動 * 画像のレイヤーをpointに変更する(メインカメラに映らないレイヤーに設定) # 12/14(水) ボスの方向を指し示す矢印を作成する。 * 矢印の画像をRowImageでプレイヤー前方に設置 * propertiesからPivotのxを-0.7に設定 上記の作業は回転軸をずらし、プレイヤーを示すポイントを中心に回転するように設定している。 ## メモ 今回は角度を求めるところまで出来たが、矢印を回転させるところで角度の加算を毎フレーム行ってしまった。 角度の指定方法などを調べる必要がある。 # 12/23(金) ボスの方向を示す矢印をPlayerの子オブジェクトから外した。 Playerのpositionをコピーするスクリプトで同じ位置に表示されるように設定した。 * 3Dオブジェクトを作成し、このオブジェクトの子オブジェクトに設定 * 3Dオブジェクトに以下のスクリプトを取り付ける ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class ArrowRot : MonoBehaviour { public GameObject target; public GameObject arrow; public GameObject player; void Update() { Quaternion lookRotation = Quaternion.LookRotation(target.transform.position - transform.position, Vector3.up); lookRotation.z = 0; lookRotation.x = 0; arrow.transform.rotation = Quaternion.Lerp(transform.rotation, lookRotation, 0.1f); } } ``` ## メモ 3Dオブジェクトなら正常に動作する。しかし、canvasなどの2Dのものは正常に動作しなかった。 # 1/18(水) マップの拡大表示機能を実装するための学習を行った。 * 大きいマップを準備しておいて、キー入力でアクティブにすることで拡大表示するように見せる * 非アクティブ状態のオブジェクトはGamgeObject.Find()で見つけることが出来ないので、public宣言を使用する # 1/20(金) マップの拡大表示機能で表示されるマップ範囲を拡大した。 もう一つマップ表示のためのカメラを追加し、焦点距離を調整することで実装した。 プレイヤーがボスに一定以上近づくと、矢印を削除するようにした。 # 今後の予定 ~~ボスの方向を示す~~ ~~ボスの近くに来ると矢印を削除する~~ ~~ナビゲーションマップの拡大表示~~
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up