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にこのようなメソッドを定義します。