Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

VR結月ゆかりごっこをやってみた-メモ

r9.hateblo.jp

昨日の続きのメモ。

カメラ切り替えと自撮り

カメラ切り替えと自撮りもやってみたけど、Unity歴とC#歴が浅すぎて全くわからなくて、
とにかく動かすの精神で以下のような強引な感じでやれたのでメモ。

最初に「使うカメラは4台だ!」と決めうち。

switchCamera1.csというスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK;
using VRTK.UnityEventHelper;

public class switchCamera1 : MonoBehaviour
{
    public Camera cam1;
    public Camera cam2;
    public Camera cam3;
    public Camera cam4;
    public UnityCam unitycam1;
    public UnityCam unitycam2;
    public UnityCam unitycam3;
    public UnityCam unitycam4;

    private VRTK_Button_UnityEvents buttonEvents;

    // Use this for initialization
    void Start()
    {
        buttonEvents = GetComponent<VRTK_Button_UnityEvents>();
        if (buttonEvents == null)
        {
            buttonEvents = gameObject.AddComponent<VRTK_Button_UnityEvents>();
        }
        buttonEvents.OnPushed.AddListener(handlePush);
    }

    private void handlePush(object sender, Control3DEventArgs e)
    {
        VRTK_Logger.Info("Pushed");

        cam1.enabled = true;
        unitycam1.enabled = true;
        cam2.enabled = false;
        unitycam2.enabled = false;
        cam3.enabled = false;
        unitycam3.enabled = false;
        cam4.enabled = false;
        unitycam4.enabled = false;
    }
}

VRTK_Buttonを持つオブジェクト(カメラ切り替えのボタン)にこのスクリプトを付ける。

通常のカメラと出力用のUnity Camを4つドラッグアンドドロップで関連付ける。

f:id:rightgo09:20180429232658p:plain


これを4つのボタン分繰り返して、cam1とunitycam1に当たる部分を有効にしたいカメラになるようにした。


すごい力技感ある。久しぶりに「動けばいい」を体現させた気がする。

まとめ

最近は体系的に学ぶことの方が多かった中で、久しぶりに「こういうのをやってみたい」を原動力にしてがんばれたので、すごく新鮮な気分になった。

「とにかくやってみる」の大切さを思い出せた、と思う。