unity 3D对象上面显示文字
2016-08-11 15:22
1336 查看
首先,在NGUI中,创建一个UIlabel或者sprite,然后在3D对象上面,需要显示文字的位置,创建一个空物体,获取该空物体的位置,将UI文字,显示在该位置
通过控制显示位置到相机的距离,对ui对象进行缩放,实现一种近大远小的效果,具体实现代码如下:
效果图:
通过控制显示位置到相机的距离,对ui对象进行缩放,实现一种近大远小的效果,具体实现代码如下:
using UnityEngine; using System.Collections; // public class BuildHeadWord : MonoBehaviour { public GameObject Head; //头顶的点 public Transform UI; //头顶的字,zD sprite private float baseFomat; //默认字与摄像机的距离 private float currentFomat; //当前相机的距离 private float Scale; void Start() { //计算以下默认的距离 baseFomat = Vector3.Distance(Head.transform.position, Camera.main.transform.position); Scale = 1-UI.localScale.x;//默认缩放差值 currentFomat = 0; } void Update() { if (baseFomat != currentFomat) { //保存当前相机到文字UI的距离 currentFomat = Vector3.Distance(Head.transform.position, Camera.main.transform.position); float myscale = baseFomat / currentFomat - Scale; //计算出缩放比例 UI.position = WorldToUI(Head.transform.position); //计算UI显示的位置 UI.localScale = Vector3.one * myscale; //缩放UI } } /// <summary> /// 把3D点换算成NGUI屏幕上的2D点。 /// </summary> public static Vector3 WorldToUI(Vector3 point) { Vector3 pt = Camera.main.WorldToScreenPoint(point); //将世界坐标转换为视口坐标 Vector3 ff = UICamera.currentCamera.ScreenToWorldPoint(pt);//将视口坐标转换为世界坐标 ff.z = 0; return ff; } }
效果图:
相关文章推荐
- Unity 3D NGUI的UITable显示顺序的一个解决方案
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字
- Unity 控制游戏对象,显示小地图
- 将文字显示在图片上面,并使文字背景半透明
- Unity 3D 动态创建对象,并渲染贴图,动态添加删除脚本
- VC下实现3D文字显示
- CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容
- 文字对象《游戏脚本的设计与开发》-第二章 文字显示[Hello world]
- MFC实现对话框透明显示:对话框透明而上面的文字不透明
- Unity-NGUI组件UICenterOnChild使对象在UIDarggablePanel居中显示
- 用Powerpoint打开ppt文件出现提示:"PowerPoint无法显示文件中某些幻灯片中的文字、图像或对象,“xx.ppt”解决办法
- < Unity 3D专栏 >实现游戏对象与对象之间通信
- < Unity 3D专栏 >动态创建对象,并渲染贴图,动态添加删除脚本
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字
- [Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(六)----实现文字闪烁效果
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字 - 流星絮语 JAVA学习笔记 - CSDNBlog
- PowerPoint无法显示文件中某些幻灯片中的文字、图像或对象
- Html 让文字显示在图片的上面
- Unity 3D 动态创建对象,并渲染贴图,动态添加删除脚本
- Html 让文字显示在图片的上面