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

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

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

4

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

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-code, VR
-,

Copyright© BUSINESS HACKER , 2021 All Rights Reserved Powered by AFFINGER5.