MRが楽しい

MRやVRについて学習したことを書き残す

Unityで動的にグラフを作成するunity-ugui-XChartsを試す

本日は Unity の技術調査枠です。
Unity で動的にグラフを作成する unity-ugui-XCharts を試してみます。
f:id:bluebirdofoz:20210619234743j:plain

XCharts

unity-ugui-XCharts は monitor1394 氏が提供している Unity のビジュアルチャートプラグインです。
折れ線グラフ、縦棒グラフ、円グラフ、レーダーチャート、散布図、ヒートマップなど様々なグラフを描画できます。
github.com
f:id:bluebirdofoz:20210619234801j:plain

パッケージの取得とインポート

unity-ugui-XCharts の UnityPackage 配下のページから取得できます。
github.com
f:id:bluebirdofoz:20210619234818j:plain

ダウンロードした XCharts-2.2.2-upm.unitypackage を Unity プロジェクトにインポートします。
f:id:bluebirdofoz:20210619234827j:plain

LineChartの追加

試しに、シーンに折れ線グラフを追加してみます。
[GameObject -> XCharts]からシーンに追加するグラフを選択できます。
f:id:bluebirdofoz:20210619234840j:plain

[LineChart]を選択すると以下のように折れ線グラフが追加されます。
f:id:bluebirdofoz:20210619234850j:plain

グラフのタイトルやグリッド、データは Inspector ビュー内の対応する Chart コンポーネントから設定可能です。
f:id:bluebirdofoz:20210619234900j:plain
f:id:bluebirdofoz:20210619234910j:plain

スクリプトからチャート情報を変更する

Chart の情報はスクリプトからも変更可能です。
以下のように LineChart のタイトルを変更するスクリプトを作成しました。
・LineChartController.cs

using UnityEngine;

// XChartsの参照
using XCharts;

// LineChrt必須
[RequireComponent(typeof(LineChart))]
public class LineChartController : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // コンポーネントの参照を取得する
        var chart = gameObject.GetComponent<LineChart>();

        // X軸ラベルを再設定する
        List<string> xAxisLabelList = new List<string>()
        { "Label_01", "Label_02", "Label_03", "Label_04", "Label_05",
        "Label_06", "Label_07", "Label_08", "Label_09", "Label_10",};
        chart.xAxis0.data = xAxisLabelList;

        // データをクリアする
        chart.series.list[0].data.Clear();

        // データを再設定する
        for(int index = 0; index < chart.xAxis0.data.Count; index++)
        {
            SerieData adddata = new SerieData();
            int setValue = index * index;
            adddata.data = new List<float> { index, setValue };
            chart.series.list[0].data.Add(adddata);
        }
    }
}

スクリプトを LineChart オブジェクトに追加します。
f:id:bluebirdofoz:20210619234925j:plain

シーンを再生して動作を確認します。
f:id:bluebirdofoz:20210619234935j:plain

XChartsをHoloLens2で利用する

MRTK を利用して本プラグインを HoloLens2 で利用してみます。
MRTK のインポート手順は以下の記事などを参考にしてください
bluebirdofoz.hatenablog.com

シーンに MRTK の基本設定を行います。
f:id:bluebirdofoz:20210619234954j:plain

[Canvas]オブジェクトを選択し、[Covert to MRTK Canvas]を実行します。
f:id:bluebirdofoz:20210619235005j:plain

Transform を調整してシーンに再配置します。
f:id:bluebirdofoz:20210619235015j:plain

[EventSystem]オブジェクトは MRTK の基本シーン設定を行っていれば不要なので削除します。
この状態でビルドし、HoloLens2 にインストールしてみます。
f:id:bluebirdofoz:20210619235024j:plain

HoloLens2 出アプリを起動すると以下の通り、グラフを確認できました。
f:id:bluebirdofoz:20210619235034j:plain

参考ページ

qiita.com