Unity3D开发Android游戏__用3D物体做UI
2012-03-31 15:56
369 查看
Unity3D自带的UI库,说实话,又丑又难用。。还没编辑器。
前面也查找过一些UI的编辑器了,但感觉效果依然不是很好。
于是想到要用面片来做UI,这样就可以更自由的定制自己的UI界面,同时也可以用Unity的编辑器。
如果只是单纯的在摄像机上放上一堆面片,那自然很简单,但如果想要放上一个背景图片呢?
用GUI的DrawTexture可以制作全屏的背景图,但是他会遮盖场景中的物体,那些自己定义的面片就看不见了。
有人可能会说用一个大的板子放后面,这也是一种解决方法,但是当屏幕大小变化时,除非你去用代码调整,不然就会出现问题。
比较好的解决方式就是加一个新的Camera来做。
这边一个操作步骤,懒的翻译,自己看吧,想用好Unity,会基本的英文搜索是很最要的。。(国内基本找不到资料)
http://answers.unity3d.com/questions/9729/how-can-i-display-a-flat-background-2d-image-not-a.html
再给一个在2DUI上放3D物体的教程,原理基本是一样的。
http://www.41post.com/3255/programming/unity3d-creating-a-gui-with-both-3d-and-2d-elements
下面是结果的一个GIF:
左下角的那个小立方体就是一个跟场景中一样的3D立方体。
现在要加上选中的事件,将Android上的Touch的坐标转换到3D场景中,然后来判断是否选中了我们的面片。
这里我们用Physx的射线可以很容易的实现。
放上C#的代码:
全屏背景:
http://www.cocoachina.com/gamedev/gameengine/2011/0526/2890.html
前面也查找过一些UI的编辑器了,但感觉效果依然不是很好。
于是想到要用面片来做UI,这样就可以更自由的定制自己的UI界面,同时也可以用Unity的编辑器。
如果只是单纯的在摄像机上放上一堆面片,那自然很简单,但如果想要放上一个背景图片呢?
用GUI的DrawTexture可以制作全屏的背景图,但是他会遮盖场景中的物体,那些自己定义的面片就看不见了。
有人可能会说用一个大的板子放后面,这也是一种解决方法,但是当屏幕大小变化时,除非你去用代码调整,不然就会出现问题。
比较好的解决方式就是加一个新的Camera来做。
这边一个操作步骤,懒的翻译,自己看吧,想用好Unity,会基本的英文搜索是很最要的。。(国内基本找不到资料)
http://answers.unity3d.com/questions/9729/how-can-i-display-a-flat-background-2d-image-not-a.html
再给一个在2DUI上放3D物体的教程,原理基本是一样的。
http://www.41post.com/3255/programming/unity3d-creating-a-gui-with-both-3d-and-2d-elements
下面是结果的一个GIF:
左下角的那个小立方体就是一个跟场景中一样的3D立方体。
现在要加上选中的事件,将Android上的Touch的坐标转换到3D场景中,然后来判断是否选中了我们的面片。
这里我们用Physx的射线可以很容易的实现。
放上C#的代码:
// Update is called once per frame void Update () { if (Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Began) { } else if (Input.GetTouch(0).phase == TouchPhase.Ended) { RaycastHit hit; Ray ray = camera.ScreenPointToRay(Input.GetTouch(0).position); if (Physics.Raycast(ray,out hit)) { Debug.Log("hit:"+hit.transform.gameObject.name);
} } } }
全屏背景:
http://www.cocoachina.com/gamedev/gameengine/2011/0526/2890.html
相关文章推荐
- 十五开源的Android(2D或3D)Android开发游戏引擎
- Unity3d游戏开发框架-UI管理类 UIManager
- Unity3D游戏UI开发经验谈
- [Unity3D]手机3D游戏开发:FPS射击游戏中瞄准镜CrossHair的制作
- [Unity3D]手机3D游戏开发:简单的移动和缩放鼠标手势脚本源码
- [Unity3D]手机3D游戏开发:如何使用Unity3D中自带的重力感应
- Android 3D游戏开发教程
- [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果强化版
- Android 3D游戏开发
- android游戏开发框架libgdx的使用(十一)—Skin和UI配置文件的使用
- 【备注】【C24】《Android 3D游戏开发技术详解与典型案例》PDF 下载
- Unity3D(3D游戏开发入门教程-38)Unity3D人物动画介绍,关键帧角色动画导入并切割
- Unity3D 之3D游戏SD快打 3D游戏基础入门开发全(1)
- [翻译]Android 3D 游戏开发教程– Part VI
- Android 3D游戏开发技术详解与典型案例
- Android 3D游戏开发(基础篇)——Opengl ES游戏引擎实现(送源码)
- Android 3D游戏开发引擎的评价和下载地址
- Android游戏开发之绘画旋转的物体(Matrix类的逻辑异常)
- [Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(一)----初始化显示的高分榜
- Android 3D游戏开发(基础篇)——Opengl ES游戏引擎实现(送源码)