Posted at

【Oculus Go】Buttonにイベントをつける


はじめに

Canvasの上にButtonとTextを配置し、ボタンを押下すると、Textの文字を変更するサンプルを作ります。


準備


手順


1. Canvas上にボタンを配置する

今回は、PosX, PosY, PosZ = (0,20,0)に配置しました。

また、ボタン名は「Push Me!」としました。

1.png


2. Canvas上にテキストを配置する

今回は、PosX, PosY, PosZ = (0,-100,0)に配置しました。

2.png


3. イベント用のオブジェクトを作成する

Hierarchy上で「Create Empty」し、オブジェクト名を「GameController」とします。


4. GameControllerにイベント用のコンポーネントを追加する

Assets > OVRInputSelection > Scripts > UIInteractionを追加します。

スクリーンショット 2019-02-09 13.46.04.png


5. Textとソースコードを関連付けする

GameControllerのOut Textに2.で配置したTextを登録します。

3.png

ここで、UIInteractionクラスのoutTextとHierarchy上のTextが関連づけられるようです。


UIInteraction.cs

using UnityEngine;

using UnityEngine.SceneManagement;

public class UIInteraction : MonoBehaviour {
public UnityEngine.UI.Text outText;

public void OnButtonClicked() {
if (outText != null) {
outText.text = "<b>Last Interaction:</b>\nUI Button clicked";
}
}

public void OnSliderChanged(float value) {
if (outText != null) {
outText.text = "<b>Last Interaction:</b>\nUI Slider value: " + value;
}
}

public void OnToggleChanged(bool value) {
if (outText != null) {
outText.text = "<b>Last Interaction:</b>\nUI toggle value: " + value;
}
}

public void OnClearText() {
if (outText != null) {
outText.text = "";
}
}

public void OnBackToMenu() {
SceneManager.LoadScene("main", LoadSceneMode.Single);
}
}



6. ButtonにOnClickイベントを追加する

項目名

Object
GameController

Function
UIInteraction > OnButtonClicked

そのままだと味気ないため、テキストを下記のように変更しました。


UIInteraction.cs

    public void OnButtonClicked() {

if (outText != null) {
outText.text = "ボタンを押しました。";
}


7. 実行

5.jpg

ボタンを押下すると、テキストの文字が変わりました。

6.jpg


参考

Oculus_GoのコントローラからレーザーポインタによりUIを操作するまで