Unity3D人物头顶名称与血条更新与绘制

[Unity]实现在角色头顶并随时看向摄像机 方法一:使用Vector3.ProjectOnPlane 方法原型:Vector3.ProjectOnPlane(Vector3 投影向量,Vector3 投影平面法向量); 返回:Vector3 平面上的投影向量 Vector3.ProjectOnPlane是Vector3提供的一个静态方法,用于计算某个向量在某个平面上的投影向量 那么我们先创建一个需要投影的向量: gameObject.transform.position - Camera.main.transform.posit.. 阅读详情

人物的名称与血条的绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称与血条绘制出来。

首先学习本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。根据这个方法计算出的2D坐标屏幕左下角的点为0.0 ,屏幕右上角的坐标为1.1 所以真实的2D坐标还得通过Screen.height 与Screen.width计算一下才行。

 

       在Unity工程导入角色控制器组件,不知道角色控制器的朋友请阅读我之前的文章哈。创建一个Plane做为游戏的地面,然后利用角色控制器组件创建两个模型,一个做为主角,一个作为NPC,主角可以通过控制来移动从四周来观察NPC对象。由于地面的面积比较小移动主角时为了避免主角越界掉下去,我们做一个边界的物理层。物理层其实很简单,就是给平面四周放置四个平面在四周将平面包围着,给四周的四个平面绑定上Box Collider组件,这样主角就不会越界掉下去啦。因为没有给贴图所以效果上看不到这四个对象。哇咔咔~ 如下图所示,在场景是途中主角被四个平面包围这,即时它拼命的想往外条但是还是跳不出去,哈哈。

 

Unity3D研究院之人物头顶名称与血条更新与绘制(二十六) - 雨松MOMO程序研究院 - 1

 

创建脚本NPC.cs 然后把脚本挂在NPC对象身上,在脚本中我们绘制主角的血条以及名称。

NPC.cs

 

注解1:通过collider.bounds.size 可以拿到模型对应三个轴向的高度,但是模型是可以缩放的,所以真实的模型高度应当是原始高度乘以缩放系数才行。 transform.localScale可以拿到模型对应三个轴向的缩放系数,因为这里我们需要模型的高度,所以忽略X轴与Z轴。

注解2:在这里我们计算血条的宽度,GUI.skin.label.Calcsize()这个方法是以默认的皮肤对象Label对象去参数对象的宽高。参数是new GUIContent(blood_Red)意思是拿红色血条的贴图的宽高,它将保存在返回的size中。最后以宽高将血条绘制在屏幕中,我们的血条采取两层。背景是黑色的,前面是红色的,当人物费血时红色血条减少。

注解3: 这里通过字符串来获取它整体的宽度与高度,因为NPC的名称是可变的,所以我们需要动态的获取整体的显示区域。同样是以GUI.skin.label对象去调用CalcSize。

 

如下图所示,当使用鼠标点击NPC对象时,NPC头顶的血条将开始发生减血。这个例子我使用OnGUI绘制当然大家也可以在Hierarchy 视图中的创建GUI Texture 或者GUI Text对象 来实现,不过原理都是这样的 大家可以试试 哇咔咔。

 

Unity3D研究院之人物头顶名称与血条更新与绘制(二十六) - 雨松MOMO程序研究院 - 2

 

Unity里名字牌、头顶挂件的实现 Unity里实现人物头顶名字牌、的实现,网上很多博客有提到过。这里结合自己在项目中的开发,简单总结几点。 UI用专门的UI相机来渲染,如何将物体的位置从主相机映射到UI相机空间。 游戏的性能提升,如何减少UI的DrawCall。如何减少GC。 阅读详情

相关推荐

Unity用GUI在角色头上显示名字(C#脚本)

using UnityEngine; using System.Collections; public class wenzi : MonoBehaviour { //主摄像机对象 private Camera camera; //NPC名称 public string name; //主角对象 GameObject hero; //NPC模型高度 float npcHe

梦幻DUO的游戏开发之路 5818

Unity 3D 游戏中实现人物头上是在 overlay 的 canvas 下)

UI 层的http://www.manew.com/home.php?mod=space&uid=234410&do=blog&quickforward=1&id=43799

随幻的博客 5009

Unity3D跟随系统实现完整方案

标准Image组件虽能满足基本需求,但难以实现诸如渐变色、脉动光效、破损边缘等高级视觉效果。此时可通过编写自定义Shader提升表现力。以下是一个带有“量低于阈值时闪烁红光”的Shader片段示例(基于Surface Shader简化版):PropertiesSubShaderLOD 200CGPROGRAM// 添加红色闪光ENDCG。

weixin_36078669的博客 1233

【转】Unity3D研究院之人物头顶名称更新绘制

人物名称绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称绘制出来。 首先学习本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。根据这个方法计算...

weixin_30785593的博客 233

Unity NGUI中人物头顶名称绘制及跟随

步骤:1.在NGUI中制作名字 2.达到在角色头顶上方显示的效果 3.在场景开始时,由角色创建自己的 实现:1.创建一个在容纳的父物体(创建这个因为一个场景中往往有很多角色拥有,这样做是方便管理) 在UI中创建一个容器(NGUI->Create->Widget),然后在Container下创建一个空物体命名为RoleHeadBarRoot 2.制作 创建一个空...

qq_27535197的博客 2736

Unity UGUI制作详细教程

Unity3d游戏中使用UGUI制作角色头顶,具体步骤如下: 1、模型添加挂点 2、制作 (1)、创建UGUI canvas (2)、修改canvas参数: RenderMode参数设置为World space,修改名字大小 (3)、创建名字,调整大小缩放,对齐方式,溢出方式,字体样式颜色 (4)、创建节点(空节点,方便控制整体的位置缩放) (5)、创建底(Image),调整大小,图片样式等 (6)、创建(Image),调整大小,图片样式等,设置Ima

RocketJ的博客 6907

Unity3d】使用GUI绘制人物头顶名称

背景:最近自己在学习写小游戏的时候想要在玩家头顶显示玩家当前名字遇到了此问题,在此攻略一下。 攻略:谷歌了一下,人物头顶名称的显示大致上分为两种方法:使用UI组件设置使用GUI绘制,我采用的方式是后者,在此之前尝试过前面的方法,但是总是出一些问题,这里讨论使用GUI绘制,使用组件设置稍后再去研究。 使用GUI绘制重在代码逻辑,这里贴出我的代码 private Camera Mia...

Goulandis 1954

Unity3D人物头顶名称更新绘制

背景是黑色的,前面是红色的,当人物时红色减少。可以拿到模型对应三个轴向的高度,但是模型是可以缩放的,所以真实的模型高度应当是原始高度乘以缩放系数才行。做为游戏的地面,然后利用角色控制器组件创建两个模型,一个做为主角,一个作为。可以拿到模型对应三个轴向的缩放系数,因为这里我们需要模型的高度,所以忽略。人物名称绘制方法很简单,但是我们需要解决的问题是如何在。的名称是可变的,所以我们需要动态的获取整体的显示区域。意思是拿红色的贴图的宽高,它将保存在返回的。世界中的人物是会移动的,它是在。

小小姑娘 827

Unity3D研究院之人物头顶名称更新绘制(二十六)

http://www.xuanyusong.com/archives/1032       人物名称绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称绘制出来。

chenluwolf的专栏 1973

unity头顶状态制作_Unity3D研究院之人物头顶名称更新绘制(二十六) | 雨松MOMO程序研究院...

人物名称绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称绘制出来。首先学习本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。根据这个方法计算出的2D坐标屏幕左...

weixin_32950759的博客 357

unity头顶状态制作_【转】Unity3D研究院之人物头顶名称更新绘制

人物名称绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称绘制出来。首先学习本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。根据这个方法计算出的2D坐标屏幕左...

weixin_39891262的博客 310

unity3d 改变脚本名称_Unity3D研究院之人物头顶名称更新绘制(二十六)...

人物名称绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称绘制出来。首先学习本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。根据这个方法计算出的2D坐标屏幕左...

weixin_39681486的博客 352

参考文章

Unity3D人物头顶名称更新绘制 https://wenku.baidu.com/view/1ac8f9bfda38376bae1fae1e.html

m0_46612856的博客 186

unity3d 角色头顶信息3D&2D遮挡解决方案(一)

先上效果图,只凭文字描述,脑补应该有些困难- -       如图:有三个角色(我们暂且从左到右叫它们A、B、C),一个2D UI(中间动作选择的框框),一个cube(右边的方块)       更多精彩请关注【狗刨学习网】         cube挡住了角色C的头顶信息       2D UI挡住了角色cube      共同点是只显示未被遮挡的部分,遮

Carl180的专栏 2115

unity3d游戏开发之名字的设置

unity3d游戏开发之名字的设置 欢迎大家光临我的博客! 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。 今天的内容是NPC头上的名字的设置 具体分析,NPC的显示需要用到Vector2(二维向量)

fsqrocket的专栏 1504

【Unity案例小技巧】Unity如何制作头顶的制作小技巧>

Unity如何制作头顶的制作小技巧>

秩沅 2611

Unity中如何制作头顶名称

一.目的 1.想知道:Unity中如何制作头顶名称 二.参考 1.Unity3d制作的三种方法

qq_40544338的博客 2384
下一篇: 常用的设计模式
Game_List
博客等级 码龄9年 1粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值