Unity3d中角色模型和角色名字保持相对位置
3D游戏中,经常遇到这样的情况。角色模型上需要显示角色名字或者血条等信息。
如果用一个摄像机会有可能出现名字或血条显示不正常等问题,所以我采用两个摄像机。一个渲染名字或血条等UI,另一个渲染角色模型。
下面以NGUI为例,实现这一功能。

如图所示,一个相机负责渲染UI,另外一个负责渲染游戏场景。
再添加脚本NamePanel,代码如下:
/*
date:2014-10-13
author:wg
description:英雄名字面板
*/ using UnityEngine;
using System.Collections; public class NamePanel : MonoBehaviour
{
[SerializeField]
UILabel lblName; [SerializeField]
GameObject obj; [SerializeField]
Camera mainCamera; [SerializeField]
Camera uiCamera; void Update()
{
UpdateNamePosition();
} Vector3 m_position;
/// <summary>
/// 更新名字位置
/// </summary>
void UpdateNamePosition()
{
//取模型在主摄像机中的世界坐标
m_position = obj.transform.position;
//转换为主摄像机的屏幕坐标
m_position = mainCamera.WorldToScreenPoint(m_position);
//用得到的屏幕坐标,在UI摄像机中转换为世界坐标
m_position = uiCamera.ScreenToWorldPoint(m_position);
m_position.z = 0f;
m_position.y += 0.1f;
lblName.transform.position = m_position;
}
}
在Update中更新坐标,实际使用按照具体情况。这里是以屏幕坐标为参考,同时也可以用视口坐标。

将脚本挂在GameManager上,其中:Obj是角色模型。
然后点击运行,就会发现名字面板紧跟着模型
Unity3d中角色模型和角色名字保持相对位置的更多相关文章
- (转) [教程] Unity3D中角色的动画脚本的编写(一)
ps: 这两天研究unity3d,对动画处理特别迷糊,不知FBX导入以后,接下来应该怎么操作,看到这篇文章,感觉非常好,讲解的很详细. 已有好些天没写什么了,今天想起来该写点东西了.这次我所介绍的内容 ...
- 转 [教程] Unity3D中角色的动画脚本的编写(二)
在上一篇,我们介绍了有关Animation这个类中的部分方法,我后来想了想,这么介绍也不是个办法(其实有些方法我自己也没用过),该介绍点实际的东西了,毕竟我们是要做东西出来的.那好 ...
- Unity3D中Ragdoll的用法
一.创建Ragdoll 见unity3d组件文档里的Ragdoll Wizard.由于unity3d中的Ragdoll设置的骨骼点名字与3DMAX里人体骨骼命名有些不一样,下图为Unity3 ...
- [Unity3D]Unity3D游戏开发之角色控制漫谈
各位朋友,大家好.我是秦元培,欢迎大家关注我的博客,我的博客地址blog.csdn.net/qinyuanpei.今天呢,我们来说说Unity3D中的角色控制,这篇文章并非关注于Unity3D中的某项 ...
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanp ...
- asp.net中使用基于角色role的Forms验证
http://www.cnblogs.com/yao/archive/2006/06/24/434783.html asp.net中使用基于角色role的Forms验证,大致经过几下四步:1.配置系统 ...
- [Unity3D][Vuforia][IOS]vuforia在unity3d中添加自己的动态模型,识别自己的图片,添加GUI,播放视频
使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 ...
- Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 尚未授予访问 Tomcat 服务器的权限。请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用户名和口令。 有关详细信息, 请查看服务器日志。
错误描述: 发布时控制台出现: 部署错误: 尚未授予访问 Tomcat 服务器的权限.请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用 ...
- Json数据解析在Unity3d中的应用
最近做项目过程中因为Json文件名写错了一个字母Unity报错,找错误找到半夜,当时为了验错,写了一个小Demo,正好借此总结一下Json. 1.什么是Json JSON(JavaScript Obj ...
随机推荐
- XOR UVALive - 8512 -区间线性基合并
UVALive - 8512 题意 :给出一个包含n个元素的数组A以及一个k,接下来进行q次询问,每次询问给出 l 和 r , 要你求出从A[l] , A[l+1] , A[l + 2],...,A[ ...
- C# 数据为空,不能对NULL调用此方法或属性的解决办法
在运行C#项目时,报出了以下错误,错误原因是数据库中的值为null时,查询时会触发该错误提示 部分源代码如下: public List<Student> findData2() { ; / ...
- Linux生成私钥和公钥免密连接
本文介绍Linux系统生成私钥和公钥进行免密连接,内容比较简单,阅读需要3分钟. 1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在 ...
- DWM1000 测距原理简单分析 之 SS-TWR代码分析2 -- [蓝点无限]
蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 首先将SS 原理介绍中的图片拿过来,将图片印在脑海里. 对于DeviceA 和 DeviceB来说,初 ...
- [CQOI2015]网络吞吐量
Description: 给你一个图,每个点可以被经过\(a_i\)次,求有多少个人可以走最短路到n点 Hint: \(n \le 500\) Solution: 极其水的一道题,就当做复习最短路板子 ...
- Python数据分析基础教程
Python数据分析基础教程(第2版)(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1_FsReTBCaL_PzKhM0o6l0g 提取码:nkhw 复制这段内容后 ...
- SpringMVC用到的jar包
SpringMVC用到的jar包 自己搭建一个SpringMVC框架时需要用到相应的jar包,参考下载网址: http://repo.spring.io/release/org/springframe ...
- [LeetCode] Rotated Digits 旋转数字
X is a good number if after rotating each digit individually by 180 degrees, we get a valid number t ...
- Ubuntu mysql连接错误10060/10061的方法
mysql 10060错误一般因为防火墙 ufw allow 3306; //允许外部访问3306端口ufw allow from 192.168.1.115; //允许此IP访问所有的本机端口uf ...
- 19.3.19 使用Flask框架搭建一个简易登录服务器
import Flask import json from Flask import request server1 = flask.Flask(__name__) #实例化一个flask对象 @se ...