VRChatのワールドにミラーを設置する+α 

ミラーとそれに関係するちょっとしたギミックを付けたいよって人向け。たぶんめっちゃ既出です。
**所要時間：10分もかからないとおもう**

## 1-1 VRCSDKのインポート

ここの説明は省略するのでわからない方は下の自分の記事なり他の方の記事を参考にして入れてください。

https://qiita.com/codez_vrc/items/7150addbd0f232c080d3

## 1-2 最低限のオブジェクトとミラーを設置する(3STEP) 

### a.VRCWorldの設置(必須)
![m1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/0f7efbe9-4390-ca43-429e-80d6689b57c7.png)
Assetフォルダ→VRChat Exampleフォルダ→PrefabsにあるVRCWorldのprefabをHierarchy上にドラッグ＆ドロップしてください。
よく分かんない人は画像の赤枠のやつを赤矢印のあたりにドラッグ＆ドロップしてください。
**VRCWorldの設置が終わりました。**

### b.床の設置(一応必須)
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/007c9146-071a-4785-a6bb-4716db9b45d0.png)
左側のHierarchyウィンドウで右クリック→3D Object→Planeを選択してください。
**床の設置が終わりました。**

### c.ミラーの設置
![m3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/57731aca-f689-9967-4b0f-aa1c55f3f51e.png)
Assetsフォルダ→VRChat Examples→PrefabsからVRC MirrorをHierarchy上にドラッグ＆ドロップしてください。
画像の通りにやればいいです。
このままだとミラーの位置がずれているので調整します。
![m4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/3b99dfe9-7e91-7d3a-6322-91120f7d09a3.png)
Hierarchy上でmirrorをクリックして選択し、右側の**TransformのPositionの値**を画像のように設定してください。
**ミラーのサイズを変更したいならTransformのScale**を調整してください。

## 1-3 VRC上で確認する

![mir.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/912c1902-ea02-2ccb-c16b-a96960b0c7d5.png)
ちゃんとミラーとして機能していますね！

# Ex.1 スイッチでOn/Offできるミラーを作成する

スイッチを使用して切り替えたい場合はUdonsharpをimportしておいてください。手順は私の以前書いた記事に記載してあります。
**※今回作成したプロジェクトをそのまま使用します。**

## 2-1 コードを書く

![m5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/4da04df3-6330-8460-f22b-c239347f89d0.png)
適当な場所にU#のスクリプトを作成してください。赤枠の位置あたりで**右クリック→Create→U#Scriptです。**

今回のファイル名はmirrorSwitchにしましょう。**コードをコピペする人は必ずファイル名もこの通りにしておいてください。**

コード部分

    using UdonSharp;
    using UnityEngine;
    using VRC.SDKBase;
    using VRC.Udon;

    public class mirrorSwitch : UdonSharpBehaviour
    {
        public GameObject mirrors;
        void Start()
        {
        
        }
        public override void Interact()
        {
            mirrors.SetActive(!mirrors.activeSelf);//ミラーが表示状態なら非表示に、非表示なら表示状態にする
        }
    }

## 2-2 スイッチを作成する
今回はただのキューブをスイッチにしておきましょう。**そうすると変なことが起きにくいです。**
Hierarchy上でCubeを作成して**Inspectorタブの一番下のAdd componentでUdonBehaviourを追加**しておきましょう。
あとついでにスイッチの位置調整も。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/67f851ee-6141-e1db-d69e-4e4d74530987.png)
![m6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/b4bab3de-4d8d-9f81-897c-c9f5dc8c4fbc.png)
スイッチのTransformの値は画像のとおりにすればいい感じになると思います。

![m7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/48debe4e-733e-71bd-f3d1-c4709778f576.png)
先程作った**mirrorSwitch.assetの方**をCubeのUdonBehaviourの画像の位置にドラッグ＆ドロップします。
![m8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/269153d2-77ae-5703-4063-d8015a8c2582.png)
先程作ったHierarchy上のミラーを赤枠の位置にドラッグ＆ドロップします。

以上でOn/Offできるスイッチの作成は完了です。再生ボタンを押してScene上でも動作確認できます。
![m9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708808/fc3d03b1-af89-5177-21d2-8055fd976568.png)
再生するとUdonBehaviourのTriggerInteractのボタンが押せるようになります。
押した際にScene上のミラーが消えて、もう一度押した際に再度表示されれば動作の確認は完了です。

### 次回は範囲内に入ったらOnになるミラーとカメラなどを映らないようにするミラーの紹介をします。