シーンプレイ機器を選択するために - VRは、アミューズメントパーク(2)学習します

(A)基本設定

「天の川」シェーダリポジトリに、ズームパラメータを設定し、カメラが彼らを包みました。

キャンバスセットの解像度は1920×1080、好ましくはワールド空間からRenderModeである。図に示すように、位置を調整します。

 

 (B)必要なシーンセレクト設定パッチ、位置(0,0、-2000)、NULLオブジェクトセット(0,0,0)、オブジェクト空間のサブオブジェクトとしてシートの表面を設定します。GameItemようなプリフォームは、コードを使用して、自動的に生成されました。

ゲームはGameItemSpan GameItem下で生成、実行されているでは、それぞれの選択プライベートフロートm_Angleの材質の[]、回転角度を定義します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class GameItemSelect : MonoBehaviour
{
    public static GameItemSelect _Instance;
    public Material[] m_gameItemMatArr;
    public GameObject go_GameItem;
    private float m_Angle;
    public int Index = 0;


    private void Awake()
    {
        _Instance = this;
        m_Angle = 360.0f / m_gameItemMatArr.Length;
        for (int i = 0; i < m_gameItemMatArr.Length; i++)
        {
            GameObject go = Instantiate(go_GameItem, transform);
            go.transform.localEulerAngles = new Vector3(0, i * m_Angle, 0);
            go.GetComponentInChildren<MeshRenderer>().material = m_gameItemMatArr[i];
            go.GetComponentInChildren<GameItem>().SetVideoName(m_gameItemMatArr[i].name);
            go.GetComponentInChildren<GameItem>().Index = i;
        }

    }

    public void RotateForWord()
    {
        Index++;
        if (Index >= m_gameItemMatArr.Length)
        {
            Index = 0;
        }
        transform.DORotate(new Vector3(0, -Index * m_Angle, 0), 0.3f);
    }
    public void RotateBack()
    {
        Index--;
        if (Index < 0)
        {
            Index = m_gameItemMatArr.Length - 1;
        }
        transform.DORotate(new Vector3(0, -Index * m_Angle, 0), 0.3f);
    }
}

 

おすすめ

転載: www.cnblogs.com/dream-seeker-201907/p/11433119.html