VR 콘텐츠 기초

[Meta Quest, VR, Oculus] Custom Hand, Ray 위치조정, Button Event Trigger

다모아 2023. 10. 27. 14:41

Asset에서 받아온 Hand

 

Ray의 포인터 위치를 바꾸는 스크립트 offset


Button Event Trigger

버튼을 누르면 선택되었다는 표시 느낌으로 빨간색 테두리가 생기게 했다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class btn : MonoBehaviour
{
    [SerializeField] private GameObject selected;

    public void onSelect()
    {
        this.selected.SetActive(true);
    }

    public void onDeSelect()
    {
        this.selected.SetActive(false);
    }
}


구성

 

Selected(Image) - bg보다 살짝 크게 만듦

 

bg(image)

 

btn(Button) - Data는 btn, btn (1), (2) 다 각자 넣어줬음

 

board(image)


Scripts

 

btn

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;

public class btn : MonoBehaviour
{
    [SerializeField] private Data data;
    [SerializeField] private GameObject selected;
    [SerializeField] private TMP_Text txt;
    [SerializeField] private TMP_Text boardTxt;
    private bool IsSelected = false;
    private int count = 1;

    private int id;
    private string upgradeName;
    private string upgradeLevel;

    private void Start()
    {
        this.id = data.id;
        this.upgradeName = data.upgradeName;
        this.upgradeLevel = data.upgradeLevel;
    }

    public void OnSelect()
    {
        Debug.Log("OnSelect");
        this.selected.SetActive(true);
        this.boardTxt.text = id.ToString() + "\n\n" + upgradeName + "\n\n" + upgradeLevel;
        this.IsSelected = true;
    }

    public void OnDeSelect()
    {
        Debug.Log("OnDeSelect");
        this.selected.SetActive(false);
        this.IsSelected = false;
    }

    public void OnPointerDown()
    {
        if (this.IsSelected == true)
        {
            Debug.Log("OnPointerDown");
            this.txt.text = count.ToString();
            count++;
        }
    }
}

Data

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Data : MonoBehaviour
{
    public int id;
    public string upgradeName;
    public string upgradeLevel;
}

 

VR에서 Button 누르면 Select 되고 Select 상태에서 또 누르면 숫자 증가

Select하면 id, upgradeName, upgradeLevel 등 정보나오기