教你如何开发VR游戏系列教程五:UI 交互

原创 2015年11月19日 22:04:44

原文链接:欢迎关注AR学院


上一篇介绍了ugui/NGUI/以及普通3D模型的UI设计。这一讲主要介绍怎么样利用这些UI做交互。 


大家在VR游戏看到的UI以及UI交互,主要有哪几种? 

1、头控悬停(视选) 
2、蓝牙手柄 
3、利用AR技术 

 


1、触摸控制
在UGUI中,按钮的的事件容易处理,直接这里设置对应的方法。

那么有时候有的同学需要使用Image怎么办?这里就以Image的选择为例。
首先创建Canvas和Image,并选择一个Sprite。

 
然后给Image添加脚本Event Trigger.

再添加新的Event Type。这里我选择使用鼠标的Pointer Click.

 
 
 
最后新建一个脚本,Control.cs,如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using UnityEngine;
using System.Collections;
    
public class Control : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
           
       }
           
        // Update is called once per frame
        void Update () {
           
       }
    
    public void PointClicked() {
        Debug.Log( "---> PointClicked");
    }
}

将脚本绑在VRCameras下,再设置Image的Event Type.

 
测试结果:

完成。



2、视选控制 
3D模型,主要就是射线+碰撞。主要代码如下,将该代码绑定到VRCameras下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using UnityEngine;
using System.Collections;
      
public class UIControl3D : MonoBehaviour {
    public Camera myCamera;
    private float time = 0;
      
    public MeshRenderer target_on;
    public MeshRenderer target_off;
    public ParticleSystem myExplosion;
      
    // Use this for initialization
    void Start () {
             
       }
             
        // Update is called once per frame
        void Update () {
        CheckTargeted();
       }
    
    
    void CheckTargeted()
    {
        // 分屏,宽度在1/2屏幕居中
        Ray ray = myCamera.ScreenPointToRay( new Vector3( Screen.width / 4, Screen.height / 2));
        RaycastHit hits;
        // 发出射线
        if ( Physics.Raycast(ray, out hits, 5000))
        {
            Debug.Log(hits.collider.name);
     
            if (hits.collider.name == "Cube")
            {
                time += 1 * Time.deltaTime;
     
                target_on.enabled = true;
                target_off.enabled = false;
     
                if (time >= 1.5f)
                {
                    this.myExplosion.Play();
                    time += Time.deltaTime;
                }
                if (time >= 2)
                {
                    time = 0;
                    this.myExplosion.Stop();
                }
            }
        }
        else
        // 重置场景
            time = 0;
            target_on.enabled = false;
            target_off.enabled = true;
        }
    }
}
最后效果如下:
 
 

OK,那么今天就讲到这里,欢迎大家一起加入交流讨论,咱们官方技术交流群是: 

AR/VR学院技术交流群 129340649

相关文章推荐

如何添加AdMob广告到现有的Unity3D ios游戏

1.在Xcode中管理库(下载地址:https://github.com/) 下载AdMob SDK。   在项目根文件夹中创建一个新的文件夹命名为“GoogleAdMobAds...

Android新手入门2016(6)--客户端编程思想的初步思考和Android学习路线

做了几年游戏服务端,不过也不是没接触过客户端的。毕业前的作业就不说了,刚毕业的时候,是在亿迅公司做CRM,开发广东电信内部使用的系统。每个功能从头到尾自己搞。要说客户端,jsp应该也算是吧。不过一年后...

教你如何开发VR游戏系列教程四:UI 设计

这篇帖子主要介绍怎么创建VR UI。  常见形式:  1、2D  NGUI、UGUI  2、3D  模型  由于后续NGUI可能停止更新以及与U3d后续版本不兼容问题,那么主要就以UGUI为例。NG...
  • ggtaas
  • ggtaas
  • 2015年11月19日 19:37
  • 2455

教你怎么开发VR游戏系列教程三:VR游戏开发中常见的一些概念

这篇介绍几个常见的VR相关的概念,欢迎补充~
  • ggtaas
  • ggtaas
  • 2015年11月19日 18:41
  • 1180

《VR入门系列教程》之21---使用Unity开发GearVR应用(转)

使用unity开发GearVR应用     上一章我们介绍了如何运用unity3d开发Oculus Rift应用,当然,这个便宜且强大的游戏引擎也可以用于GearVR的应用开发,这时我们需要...

《VR入门系列教程》之21---使用Unity开发GearVR应用

使用Unity开发GearVR应用     上一章我们介绍了如何运用Unity3D开发Oculus Rift应用,当然,这个便宜且强大的游戏引擎也可以用于GearVR的应用开发,这时我们需要用到...

Java EE开发系列教程 - 使用EJB组件与JPA层交互

英文同步版链接Github项目源码EJB 全称为Enterprise Java Beans,封装了应用程序的业务逻辑并提供与容器服务交互的能力,如事务和安全。本教程在上次创建的JPA模块的基础上,继续...

cocos2d-x游戏开发系列教程-超级玛丽02-代码结构

代码下载链接http://download.csdn.net/detail/yincheng01/6864893解压密码:c.itcast.cn前景回顾上一篇博文提到超级马里奥的游戏效果,大家是否已经...

cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap(四)-马里奥平移

上一篇博文提到,程序如何获取键盘输入,也就是D键按下,程序获取到前进指令,那么获取到前进指令之后,马里奥是如何前进的呢,这篇文章我们重点讨论这个问题。马里奥的移动,依旧是在帧刷新函数中,这个调用过程上...

Unity3D系列教程–使用免费工具在Unity3D中开发2D游戏 第三节

声明:   本博客文章原创均为个人原创 , 翻译类文章均为个人业余时间翻译,版权所有。转载请注明出处:http://www.wjfxgame.com,另外本人的CSDN博客:http://blog.c...
  • ml3947
  • ml3947
  • 2013年06月02日 16:32
  • 4350
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:教你如何开发VR游戏系列教程五:UI 交互
举报原因:
原因补充:

(最多只允许输入30个字)