초보자 VR 엔지니어가 코드를 읽을 수있는 방법
워킹 메모리를 단련하면 코드 모리모리 읽을 수 있는 설~! !
착상을 얻은 계기는 이 논문입니다! 간단한 기억력 테스트로는 VR공간 내의 쪽이 2D에서의 테스트에 비해 8.8% 높은 결과였다는 것입니다 👏 htps // t. 코 / y 치이 j49 0S 100 (@okprogramming) 10월 12, 2019
더 거슬러 올라가면 이 기사에서 N 백 과제에 대해 알았습니다.
제목은 팩이 아닌 존경의 증거입니다.
N 백 과제는?
얼마 전의 기억을 끌어내는 훈련을 함으로써,
워킹 메모리가 단련되어, 코드와의 쫓는 곳이 능숙해지는 것 같습니다. 
놀이 방법
★준비
Oculus Quest에 Github에서 다운로드 한 apk를 찔러서 시작하고 끝입니다. 
→ Github 
먼저 빛나는 패널을 기억하고 기억하면서 선택하기만 하면 됩니다. 
2백 정도부터 시작하면 룰을 알기 쉽다고 생각합니다. 
  
 
올레올레 N 백 구현
여기서부터 주제입니다. 강한 여러분은 어떻게 구현할까요? 
우선은 뇌 트레이닝으로 놀아보고, 자신이라면 어떻게 구현할 것이다,,,,
라는 관점에서 다시 놀면 두 번 맛있습니다. 
슬라이더로 선택한 레벨 획득
 우선 슬라이더로 선택한 레벨을 얻습니다. 
아래 코드의 GetLevel() 로 취득한 회수분만 최초로 패널이 빛납니다. 
using UnityEngine;
using UnityEngine.UI;
public class LevelGetFromSlider : MonoBehaviour
{
    Slider levelSlider;
    void Start()
    {
        levelSlider = this.gameObject.GetComponent<Slider>();
    }
    public int GetLevel()
    {
        return (int)levelSlider.value;
    }
}
패널이 레벨의 횟수만큼 자동으로 무작위로 빛난다
다음 코드에서는 다음을 수행합니다. 
①모든 패널을 취득, 리스트화. 
② 작성한 리스트에서 랜덤하게 하나를 선택. 
③ 선택된 오브젝트 측에 부착된 클래스에서 빛나는 소리가 울리는 등의 메소드를 호출한다. 
④ 선택된 객체를 나열한다. 
위를 GetLevel() 로 취득한 회수분만큼 반복합니다. 
또한, 다음의 패널측에서 호출할 예정인 ToNextSelect() 도 여기에 써 둡니다. 
    [SerializeField, Header("選ばれる間隔を操作")] 
    float m_interval = 2;
    List<GameObject> m_tmpListObj = new List<GameObject>();
    [HideInInspector]
    public List<GameObject> g_listObj = new List<GameObject>();
    float m_randomValue;
    void Start()
    {
        //子のオブジェクトを全部リストに入れとく
        foreach(Transform child in this.gameObject.transform)
        {
            m_tmpListObj.Add(child.gameObject);
        }
    }
    //Startボタン押したら呼ばれる
    public void AutoSelectStart()
    {
        StartCoroutine(AutoSelectStartCoroutine());
    }
    //レベルに応じて自動で選ばれる回数を変える
    IEnumerator AutoSelectStartCoroutine()
    {
        for(int i = 0; i < m_levelGetFromSlider.GetLevel(); i++)
        {
            yield return new WaitForSeconds(m_interval);
            //ここでどれが選ばれるかランダムに決める
            m_randomValue = Random.Range(0, m_tmpListObj.Count);
            //選ばれたときのイベント呼び出し
            m_tmpListObj[(int)m_randomValue].GetComponent<PanelSelectedEvent>().BlinkPanel();
            m_tmpListObj[(int)m_randomValue].GetComponent<PanelSelectedEvent>().CorrectSoundPlay();
            //選んだオブジェクトをリスト化する
            g_listObj.Add(m_tmpListObj[(int)m_randomValue]);
        }
    }
    //レーザーで選んだら次が光ってリストを更新
    public void  ToNextSelect()
    {
        //ここでどれが選ばれるかランダムに決める
        m_randomValue = Random.Range(0, m_tmpListObj.Count);
        //選ばれたときのイベント呼び出し
        m_tmpListObj[(int)m_randomValue].GetComponent<PanelSelectedEvent>().BlinkPanel();
        //選んだオブジェクトをリスト化する
        g_listObj.Add(m_tmpListObj[(int)m_randomValue]);
    }
게임 시작까지 처리가 완료되었습니다.
패널을 선택하여 정답 부정해 결정
여기에서는 실제로 패널을 선택한 후의 판정으로 이동합니다. 
판정은 패널측에서 개별적으로 실시합니다. 
가는 일은 매우 간단합니다.
① 조금 전의 리스트를, 준비한 인덱스로 지정해 호출해, 자신과 대조한다. 
②합치하고 있으면 정해음과 다음의 패널이 선택되는 처리를 실행해, 준비한 인덱스를 인크리먼트. 
잘못된 경우 증가하지 않고 실수 SE를 재생하면 됩니다. 
또, 인크리먼트 한 인덱스의 수로부터 게임 클리어시의 판정도 실시하고 있습니다. 
    //このスクリプトはパネルにアタッチされたスクリプトです
    //何回選ぶか エンドレスモードがあればここをめちゃくちゃでかい数字に変えればOK
    int m_playTime = 10;
    static int m_selectedCount;
    //先程のリストを取ってくる
    PanelSelected m_panelSelected;
    void Start()
    {
        m_selectedCount = 0;
        m_panelSelected = this.gameObject.GetComponentInParent<PanelSelected>();
    }
    //選んだものが同じかどうか判定して選択カウント増加
    public void IncrementSelectedCount()
    {
        if (m_selectedCount < m_playTime)
        {
            if (m_panelSelected.g_listObj[m_selectedCount] == this.gameObject)
            {
                m_panelSelected.ToNextSelect();
                CorrectSoundPlay();
                m_selectedCount++;
            }
            else
            {
                WrongSoundPlay();
            }
        }
        else
        {
            if (m_panelSelected.g_listObj[m_selectedCount] == this.gameObject)
            {
                CorrectSoundPlay();
                m_selectedCount++;
                if (m_selectedCount == m_playTime + m_levelGetFromSlider.GetLevel())
                {
                    //ここにクリア時の処理
                    m_clear.ClearTextAppear();
                }
            }
            else
            {
                WrongSoundPlay();
            }
        }
    }
요약
만들고 이런 말을 하는 것도 됩니다만,
프로그램을 읽을 수 있게 되고 싶다면 프로그램을 읽으면 좋겠다고 생각합니다. 
고마워요. 
Reference
이 문제에 관하여(초보자 VR 엔지니어가 코드를 읽을 수있는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OKsaiyowa/items/db98c4bb6dacec1979e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)