VR之Unity 开发Pico测试之UI和Object的交互

所用工具:Unity 5.3.6,Pico的SDK(官网下载最新版)

第一步:打开unity建立一个新的工程 起名PicoTest;

第二步:导入Sdk;

第三步:建立一个新的scene,保存;

第四步:把PicoVrSdk下的Prefabs 的PicoVr预制件放到Hierarchy下,把原有的MainCamera删掉,接下来开发自己的VR;

测试的主要内容是怎么和UI和物体交互:

用Unity自带的UGUI搭建简单的测试UI进行测试:

先谈一下和UI的交互:交互无非两种,一是通过手柄操作按钮(Pico的手柄的A键相当于鼠标的左键),把脚本里对应的button方法绑定到对应脚本就可以或是通过代码监听(见下面脚本);

    二是通过凝视,需要给按钮添加一个组件Eventer Trigger ,点击add new Event Type 选择PointerEnter,   接着绑定方法就好或是通过代码监听见下面脚本);

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class UItest1 : MonoBehaviour
{
    private Button btn1;
    private Button btn2;

    public delegate void myDelegate(GameObject go);
    public myDelegate onEnter;
    // Use this for initialization
    void Start()
    {
        btn1 = this.transform.GetChild(0).GetComponent

上述代码btn1 是点击,btn2是凝视;

VR之Unity 开发Pico测试之UI和Object的交互_第1张图片

    另外,要想UI不对SifhtPointer(射线检测)有反应,把Canvas下的Panel,Image,Text等的raycast Target设置为false,button肯定得为True;

    对于和物体的交互,要想检测到场景里的3维物体,除了物体自身有collider组建外,还需要对PicoVr下的Head添加一个叫Physics Raycaster的组件;


using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;

public class ObjectTest : MonoBehaviour {
    private GameObject obj1;
    private GameObject obj2;
    private GameObject obj3;

	// Use this for initialization
	void Start () {
        obj1 = this.transform.GetChild(0).gameObject;
        EventTriggerListener.Get(obj1).onClick += ClickObject;
        obj2 = this.transform.GetChild(1).gameObject;
        EventTriggerListener.Get(obj2).onClick += ClickObject;
        obj3 = this.transform.GetChild(2).gameObject;
        EventTriggerListener.Get(obj3).onClick += ClickObject;
	}

    private void ClickObject(GameObject go) {
        switch (go.name)
        {
            case "Cube":
                Debug.Log(obj1.name);
                break;
            case "Sphere":
                Debug.Log(obj2.name);
                break;
            case "Cylinder":
                Debug.Log(obj3.name);
                break;
            default:
                break;
        }
    }
}
VR之Unity 开发Pico测试之UI和Object的交互_第2张图片


你可能感兴趣的:(Pico,VR)