code VR

Unity×VR(72)

スポンサーリンク

//tips

//UIのドラッグ操作

プレイヤー画面上でUIを操作できる設定を確認する。簡単なシーンを作成し検証していく。

UIimageのみのシーンを作成し、imageに下記スクリプトをアタッチし、ドラッグされていたらMyDragUIメソッドを呼び出しInput.mousePositionでマウスの位置に画像を移動させるようにする。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ReceiveEvent : MonoBehaviour
{
public void MyDragUI()
{
transform.position = Input.mousePosition;
}
}

まだ、この段階ではドラッグイベントを受け取れないので、そちらの受け取りについて考える。

ドラッグイベントを発生させるためにImageオブジェクトのインスペクタでEvent Triggerを追加し、Dragイベントの追加を行う。そこに先に作成したReceiveEventのMyDragUIをアタッチする。

無事にUIをドラッグ操作することができるようになった。この仕組みをcanvas下にあるInventoryオブジェクトの大元に追加することできちんと操作反映することができるようになった。

プレイヤーの消滅と同時に別シーンへ移行する仕組みを導入する。NowLoading画面と遷移画面を新規unityでは作成していなかったので、復習の意味も兼ねてこちらでも作成しておく。

先のシーンにボタンを設置し、ボタンを押したら遷移するようにする。その際にnowloadingの表示を行うpanelの表示も行う。loading画面はButtonを押した時にアクティブにして表示するようにする。(NowLoading画面の作成方法はネット上に参考サイトが多くあるのでそちらを参照。)

Loading画面が作成できたら、シーンの空オブジェクトにアタッチするLoadingScriptを作成する。

AsyncOperationの値で読み込みの状況を把握する事が出来るので、スライダーの値にその読み込み状況を示すasync.progressの値を入れる。

async.progressが0.9を越えるとシーン移動が始まるようなので、Mathf.Clamp01を使ってasync.progressの値を調整している。

Mathf.Clamp01は0から1までの値に制限し、その値を返すもので、マイナスの場合は0を1より大きい場合は1を返す。ここでは0.9の時点で1になるようにすることでゲージが満タンになった後に遷移が行われるようにしている。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class LoadingScript : MonoBehaviour
{
// 非同期動作で使用するAsyncOperation
private AsyncOperation async;
// ロード中に表示するUI画面
[SerializeField]
private GameObject loadUI;

[SerializeField]
private Slider slider;

public void NextScene()
{
// ロード画面UIをアクティブ
loadUI.SetActive(true);

// コルーチン開始
StartCoroutine("LoadData");
}

IEnumerator LoadData()
{
// シーン読み込み
async = SceneManager.LoadSceneAsync("0103");

// 読み込みが終わるまで進捗状況をスライダーの値に反映
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
}

Buttonを選択しOn Click()にNextSceneメソッドを設定。きちんと遷移先にしたいシーンをbuild setting のシーンの中に入れておくのを忘れない。

きちんと機能しているので、次はプレイヤーがdestroyされるタイミングでシーン遷移が行われるように変えていく。

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-code, VR
-,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.