随笔 - 31, 评论 - 5, 访问 - 119581

导航


  • 访问:119581次
  • 积分:326分
  • 排名:第38名
  • 随笔:31篇
  • 评论:5条

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

unity3d 阅读(3733) 评论(0)

在Oculus中使用OnGUI不能使用普通的方式,为了方便地处理GUI,我找到了称为VRGUI的GUI包。
Unity GUI Package + Example
下载网址:http://www.okbase.net/file/item/27425
https://developer.oculusvr.com/forums/viewtopic.php?f=37&t=4944

使用方法:
1)首先将VRGUI包导入你的项目中
2)新建脚本,建立从VRGUI派生的类,重载OnVRGUI方法,例如:

public class ExampleMenu : VRGUI 
{
public override void OnVRGUI()
{
GUILayout.BeginArea(new Rect(0f, 0f, Screen.width, Screen.height));
if (GUILayout.Button("Click Me!"))
{
doSomething();
}
GUILayout.EndArea();
}
}



VRGUI本身是继承自MonoBehaviour,所以从VRGUI继承不会有任何问题。我建立一个OnVRGUI的重载函数OnVRGUI,在里面便可以和在OnGUI一样处理。

// Oculus GUI 处理
public override void OnVRGUI()
{
// 绘图
GUI.DrawTexture( new Rect(0,0,256,256),texture);
}



下面的代码是判断是否接了Oculus Rift,调用不同的处理代码,而绘图使用同一个函数。

// Oculus GUI 处理
public override void OnVRGUI()
{
// 绘图
this.RenderGUI();
}

// GUI 处理
public new void OnGUI()
{
// 判断环境
if(IsOculus()){

// 调用基类OnGUI
base.OnGUI();
}
// 不是Oculus
else{
// 绘图
this.RenderGUI();
}
}

// 实际的绘图函数
private void RenderGUI()
{
// 绘图
GUI.DrawTexture( new Rect(0,0,256,256),texture);
}



另外,VRGUI还提供了鼠标的现实功能,还可以自定义鼠标光标。

下载VRGUI及实例源码:http://www.okbase.net/file/item/27425


发表评论
切换编辑模式