Unity3d人物的名称与血条的绘制方法

unity3d实现NPC显示名称 这篇脚本简单易懂,无非就是将NPC的3D坐标转换为2D坐标,根据NPC高度用GUI绘制名称。 using UnityEngine; using System.Collections; public class NameHun : MonoBehaviour { private GameObject player;//主角对象 private Camera camera;//主摄像机对象 阅读详情

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

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

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

 

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

  1. NPC.cs
  2. 001
  3. using UnityEngine;
  4. 002
  5. using System.Collections;
  6. 003
  7.   
  8. 004
  9. public class NPC : MonoBehaviour {
  10. 005
  11.   
  12. 006
  13. //主摄像机对象
  14. 007
  15. private Camera camera;
  16. 008
  17. //NPC名称
  18. 009
  19. private string name = "我是雨松MOMO";
  20. 010
  21.   
  22. 011
  23. //主角对象
  24. 012
  25. GameObject hero;
  26. 013
  27. //NPC模型高度
  28. 014
  29. float npcHeight;
  30. 015
  31. //红色血条贴图
unity学习之怪物名称 欢迎来到unity学习、unity培训unity企业培训教育专区,这里有很多U3D资源、U3D培训视频,我们致力于打造业内unity3d培训、学习第一品牌。       人物名称绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的怪物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的怪物坐标换算成2D平面中的坐标 阅读详情

相关推荐

最新 unity 的另类制作-伤害减自动回

最新 unity 的另类制作-伤害减自动回   unity 的另类制作-伤害减,最简单教程,菜鸟必看 的效果图: 做这个教程的目的,第一是为了巩固自己学到的知识,同时也可以帮助我一起正在学习unity的童鞋们。因为有很多做的教程,不是复杂就是有错,要么就是要用NGUI等等插件,对于我们这些初学者,能清晰,简单的做到要的效果就

6420

Cocos2d-x 为人物添加(进度)

首先,准备两张图片,一张是bar.png,本质上就是一个框,里面可以装;另一张是blood.png,从名字就可以看出来,是红色的。预览一下。** 要说明的是,在Cocos2dx中进度的变化是通过ProgressTimer类来实现的。 auto sprite = Sprite::create("res/game/bar.png"); //创建进度框 sprite->setPosition(Point(size.width/2,size.height-20)); //设置框的位..

翻肚鱼儿的博客 1114

Unity3D三维标签

最近研究了一个三维标签的功能,仿照Unity里的Tag功能。

leubooth 3238

Unity3D自学记录】Unity3D显示NPC名称

using UnityEngine; using System.Collections; public class NPCName : MonoBehaviour { //主角对象 private GameObject player; //主摄像机对象 private Camera camera; //NPC名称 private string na

虚拟世界 2708

RPG 游戏 unity ngui 实现2D名字等功能

名字牌包括2D,3D名字牌两种,区别在于2D是基于屏幕坐标的名字牌,将名字牌的gameobject结点挂在UI相机下,不会受3D场景中物件的影响,3D名字牌可以视为游戏场景内的一部分物件,名字牌跟随角色移动同时也会被3D场景中其他物件遮挡,这里仅讨论2D名字牌 关于ngui实现名字牌的方式,很多博客都写到过,本人在这里针对RPG游戏中的实现方式进行一下个人总结 先归纳一下这类需求: 名字牌:

levine2008的专栏 2109

unity学习(83)——细节名称

3.当发生旋转时,出了自己的昵称要转,其他玩家的也必须平行,所有的rotate y设置成相同的数值!这个应该在maphandler的update中实现,迟早的事情!2.因为是第三人称,从背后看,所以名称应该水平对称,翻转一下!4.灵敏度问题,走的慢点,转向快些。眼中有细节,学习的过程才能平稳!5. 右边的操纵杆!1.游戏更新时把名字也更新。

qq_27863281的博客 786

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

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

weixin_39681486的博客 352

Unity3D人物头顶名称更新绘制

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

小小姑娘 827

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

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

weixin_32950759的博客 357

参考文章

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

m0_46612856的博客 186

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

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

chenluwolf的专栏 1973

Unity3D人物头顶名称更新绘制

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

Game_List的博客 2052

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

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

Goulandis 1954

Unity3D技术之名称绘制详解

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

Qst_Baron的专栏 922

Unity中如何制作或头顶名称

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

qq_40544338的博客 2384

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

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

weixin_39891262的博客 310

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

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

weixin_30785593的博客 233
上一篇: unity3d中动态增加、建立场景
下一篇: Unity3D教程:性能优化
七大黍
博客等级 码龄20年 436粉丝 260原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值