Unity3D 人物头顶名称显示

</pre>在屏幕上写字很简单,但是要把字写到自己想要的位置就比较困难了,<p></p><p>而在游戏中人物名称会跟随着人物进行移动</p><p>在unity中游戏物体的坐标和UI是两个不同的坐标系</p><p>他们之间的坐标转换就是关键</p><p>Vector2 pos = Camera.main.WorldToScreenPoint(objPos);</p><p>可以将世界坐标(也就是物体在场景中的坐标)转换成屏幕坐标</p><p></p><p><pre name="code" class="csharp">//此处是人物名称需要显示的世界坐标位置 
Vector3 worldPos = new Vector3(this.gameObject.transform.position.x, this.gameObject.transform.position.y+height, this.gameObject.transform.position.z);
<span style="white-space:pre">	</span>//坐标转换
        Vector2 pos = Camera.main.WorldToScreenPoint(worldPos);
<pre name="code" class="csharp"><span style="white-space:pre">	</span>//由于坐标体系不同,他们的Y轴方向相反,需要转换一下
pos = new Vector2(pos.x,Screen.height-pos.y);
 
<span style="white-space:pre">	</span>//获取名称的宽高
        Vector2 nameSize = GUI.skin.label.CalcSize(new GUIContent(name));
<span style="white-space:pre">	</span>//
        GUI.Label(new Rect(pos.x - nameSize.x / 2, pos.y, nameSize.x, nameSize.y), name);


这样就可以在屏幕需要的位置进行文字的显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值