unity5.6でメッセージ通知画面を作ってみる


UnityでVRコンテンツ制作

VRコンテンツでメッセージ通知を実現したい


(※イメージ)

VRを体験している人に、架空の設定でメッセージがきたことを通知するっていうのを実装したいと思ってます。

準備

・VR再生ができるUnityプロジェクト
・通知アイコン用画像(↓)

画像はcubeに貼り付けています。

実装

配置

とりあえず、カメラを移動しても追従してほしいので、ポインターと同じ扱いの位置に配置します。

そして、軽く位置の調整をします。

点滅させる

それっぽさを出すために点滅させます。

void Update () {
 if (cnt > 50 && cnt < 100) {
  Transform rb = GetComponent<Transform>();
  Debug.Log(rb.localScale.x);
  rb.transform.transform.localScale = new Vector3(0, 0, 0);
 } else if(cnt > 100){
  Transform rb = GetComponent<Transform>();
  Debug.Log(rb.localScale.x);
  rb.transform.transform.localScale = new Vector3(0.2484762f, -0.2484762f, 0.000002f);
  cnt = 0;
}
  cnt++;
}

このスクリプトを先ほどのmessage_iconにドラックします。
すると画面上で点滅すると思います。

いまいち

しかし、これではAndroidで体験した時に、焦点が合わず「なんか上の方になんかある・・・」という形になってしまい、非常にいまいちでした。

空間の一部に配置する

やはり、空間上にメールアイコンを配置することにしました。先ほどのmessage_iconをこのように配置します。そして、名前をmessage_boardに変更します。

イベント処理

メールにフォーカスが当たったらメッセージを表示するようにします。
メッセージ
このメッセージも同じように空間に配置します。

GameObject message;
public void MoveBoxUp(){
  transform.localScale = new Vector3 (1,1,0.000001f);
  message = GameObject.Find("message_body");
  message.transform.localScale = new Vector3 (1,1,0.000001f);
}
public void MessageDelete(){
  message = GameObject.Find("message_body");
  message.transform.localScale = new Vector3 (0,1,0.000001f);
}

changeColorにこのようなメソッドを定義します。

そして、message_boardにこのようにイベントをつけます。

最後に、message_bodyの方をこのように設定すれば完了です。