HoloLens开发手记 - UI搭建

2016-12-09  本文已影响2222人  Zhansongtao

使用UGUI


本文主要讲述在unity中使用UGUI 进行 2D UI的搭建,以一个简单的demo示例,在HoloLens上进行button的触发实现cube的随机颜色变换。

1.新建一个unity工程,从HoloToolKit中添加Main Camera、Cursor组件

Main Camera在Holotoolkit -> Utilities -> Prefabs中可以找到;
Cursor在Holotoolkit -> Input-> Prefabs中可以找到,cursor对象中包含了CursorManager.cs脚本组件

2.新建一个空物体,命名为Manager,在Manager对象上添加GazeManager.cs 、GestureManager.cs脚本组件,为应用添增凝视和手势特性。

同时可以加上HandManager.cs脚本组件,并在Holotoolkit -> Input-> Prefabs中的HandDetectedFeedback预制体拖拽至Manager对象作为其子物体,为应用添加手势检测反馈。

Paste_Image.png

3.新增一个cube对象,并在此上添加一个CubeChangeColor.cs脚本

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

public class cubeChangeColor : MonoBehaviour {

    public static cubeChangeColor instance;

    void Awake()
    {
        instance = this;
    }

    public void OnChangeColor()
    {
        gameObject.GetComponent<MeshRenderer>().material.color = new Color(Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f);
        Debug.Log("OnChangeColor");
    }
} 

4.UI -> Image 新建一个Image,会自动生成一个Canvas 和一个EventSystem

5.在EventSystem上添加Hololens输入模块。用以实现对按钮的点击操作等。

6.Canvas设置

7.设置Image的背景图片,这里其实和UGUI 常规做法相同,不加细述;

8.UI->Button 新建一个Button,并修改对应的缩放参数

9.给ButtonCanvas添加碰撞器

修改碰撞器Size,使凝视射线能够凝视到Button以便Gesture手势能对其进行交互触发。其实此时Button就相当于了一个游戏对象

给Button添加一个ButtonEvent.cs脚本组件:

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

public class buttonEvent : MonoBehaviour {

    public void OnSelect()
    {
        cubeChangeColor.instance.OnChangeColor();
        Debug.Log("OnSelect");
    }
}

GestureManager.cs手势识别对凝视到的对象进行发送OnSelect()消息实现触发。因此在Button上编写OnSelect()函数,函数内容是调用cube对象的CubeChangeColor.cs脚本组件上的随机改变颜色的函数。以此实现在HoloLens中点击Button随机变换cube颜色。

10.调试运行

可以看到在Hololens的视野中出现了一个UI界面,并且Hololens凝视射线可以凝视在上面。点击Button实现cube的随机颜色变换。

11.存在问题

上一篇下一篇

猜你喜欢

热点阅读