
- 作者: BATA,まつだす
- 出版社/メーカー: 翔泳社
- 発売日: 2016/01/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
序文
『Unity5ゲーム開発レシピ』9日目。
徹夜明けで少しぼーっとしています。あ、寝たからだ。
GitHub
進捗
- Part01 基本編
- Chapter06 ユーザーインターフェースを作成する(途中)
(学習時間:2時間)
コード実装部分
\Chapter1\Assets\Scripts\Marker.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Marker : MonoBehaviour { Image marker; public Image markerImage; GameObject compass; GameObject target; void Start() { // PlayerTargetはプレイヤーの中心 target = GameObject.Find("PlayerTarget"); // マーカーをレーダー(コンパス)上に表示する compass = GameObject.Find("CompassMask"); // マーカーイメージを取得して marker = Instantiate(markerImage, compass.transform.position, Quaternion.identity) as Image; // コンパスのマスクの子要素にする(各エネミーごとに実行される) marker.transform.SetParent(compass.transform, false); } void Update() { // マーカーをプレイヤーの相対位置に配置する Vector3 position = transform.position - target.transform.position; marker.transform.localPosition = new Vector3(position.x, position.z, 0); /* // レーダーの範囲外に出たら表示しない if (Vector3.Distance(target.transform.position, transform.position) <= 150) marker.enabled = true; else marker.enabled = false; */ } // 敵が消滅したら敵のマーカーも消滅させる void OnDestroy() { Destroy(marker); } }
- その他実装部分
実行結果
www.youtube.com 無駄に長い
感想
やったこと。
- レーダー上に敵を表示する(離れたり、やっつけたらレーダー上から消える)
- プレイヤーの体力を表示する
離れた敵を表すマーカーをレーダー上から消すのに
- 敵とプレイヤーの距離を測って一定距離以上離れたら非表示にする
- Maskコンポーネント使用してマスクの範囲外に出たら表示させないようにする
という2とおりの実装方法が説明されていた。
前者のほうが直感的であるけれど、後者のやり方で実装できることがプログラミングの実力なのだと思っている。
そのためにはいろんなソースコードに触れるようにするのが一番だ。
勉強勉強。
カロリーメイトください。
BGM
天然関係 / Sir Oriental Orchestra