NGUI系列教程 第五部

NGUI系列 视频是从B站上看到的SIKI学院, 1.开发游戏 2.加入广告 3.推广游戏 4.赚取收益 添加UnityAds步骤 1.下载广告插件导入到Unity中 2.注册登录账号 https://unity.com/solutions/unity-ads 打开后登录账号 3.添加游戏,获取游戏ID(Game ID) ... 阅读详情

转自:http://blog.youkuaiyun.com/jbjwpzyl3611421/article/details/10593615


在一些网络游戏中,我们常常可以看到角色的上方显示着角色的名称,等级,血量等信息。它们可以跟随角色移动,并且可以显示和隐藏。今天我们就来学习一下这些功能的实现方法。
1. 新建unity工 程,导入NGUI插件。对于字体按钮等的制作方法参见以前的系列教程。这里我们直接开始学习制作方法。首先新建一个2DUI,设置UI的层为NGUI。新 建完成后,使用菜单NGUI -->Create a Panel ,在现有Panel的节点下新建一个Panel,命名为Panel_CharacterInfo,作为角色信息面板的根节点。使用Widget Tool创建两个Label,一个命名为Name,另一个为Life。再创建一个Progress Bar,用于显示角色的血量信息。在创建一个建立完成后场景中视图列表如图:

2.  场景设置,现在我们新建一个Plane作为地面,新建一个PointLight用于场景照明,然后再新建一个Cube,作为我们的角色。场景设置如图

3. 为cube添加角色控制器。首先导入角色控制Package。在工程窗口中点击右键,选择ImportPackage,选择 Character Controller。该包包括两个角色控制器,我们先把Cube自带的BoxCollider删除,然后为它添加 FPSInputController,CharacterMotor两个脚本。就完成Cube的角色设置了,点击运行,按下键盘的方向键可以看 到,Cube可以根据我们的按键左右移动。

4.编写UI跟随角色控制脚本脚本。对于实现方法,我们可以有以下思路。首先我们想要清楚,我们想要实现的是UI跟随Cube移动。这里我们就要考 虑,UI要得到Cube在屏幕上的坐标位置。然后再根据位置做相应的移动。我们知道在Unity中,Camera. WorldToScreenPoint和Camera. ScreenToWorldPoint可以分别将世界坐标和屏幕坐标相互转换。有了思路我们就可以动手写代码。代码比较简单,我已经在后面注释了,大家可 以一目了然。

 

public class UIFollowTarget : MonoBehaviour {

    public GameObject TargetObject;         //目标物体。这里是指Cube
    public Camera worldcamera;         //世界相机。
    public Camera guiCamera;           //UI相机
// Use this for initialization
void Start ()
    {
        worldcamera = NGUITools.FindCameraForLayer(TargetObject.layer);     //这里是通过物体的层获得相应层上的相机
        guiCamera = NGUITools.FindCameraForLayer(this.gameObject.layer);   //通过脚本所在物体的层获得相应层上的相机
}

// Update is called once per frame
void Update ()
    {

}
    void LateUpdate()
    {        
        Vector3 pos = worldcamera.WorldToScreenPoint(TargetObject.transform.position);         //获取目标物体的屏幕坐标
        pos = guiCamera.ScreenToWorldPoint(pos);                              //将屏幕坐标转换为UI的世界坐标
        pos.z = 0;                                //由于NGUI 2D界面的Z轴都为0,这里我们将坐标修改为0.只取其X,Y坐标。
        transform.position = pos;      //将修改过的坐标赋给UI界面。这里指Panel_CharacterInfo
    }
}

5. 将脚本赋给Panel_CharacterInfo,设置目标物体为Cube,Worldcamera为Main Camera,guicamera设置为NGUI的Camera。完成后点击运行,我们可以看到,UI已经在跟随物体移动了。

6. 当场景中有很多角色的时候,我们可能有时候只想看我们选中的角色的信息。没有选中的就隐藏,这样的功能大家可以在熟悉了这些之后自己实现。这里提供一个思 路供大家参考:首先定义一个角色信息的类,然后根据当前选择的角色,读取该角色的信息,赋值给UI里的Name life等参数。并且赋值角色的位置信息给UI,这样UI就可以动态的显示在响应角色的位置上。


【Unity&UGUI&NGUI】浅谈UGUI和NGUI两者的优劣 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- NGUI: 阅读详情

相关推荐

NGUI和UGUI的区别

       序:十分钟前还在想今天的知识总结点啥,偶然想起多年前某大厂有过这么一道面试题。我自己也是有过使用这两种UI使用经历的(说起来挺吓人的。。。一点不夸张,参与过的两个手游大ip的开发。。。一个用的NGUI, 一个用的UGUI),但你突然问我这个问题我也会好好思考一下,今天正好一起总结一下吧。下次你可以拿去吹牛bi,或者面试,都可以,再者也有利于深入对UI的了解。        据说UG...

jfy307596479的博客 6070

NGUI系列教程五(角色信息跟随)

============努力学习的分割线============       在一些网络游戏中,我们常常可以看到角色的上方显示着角色的名称,等级,血量等信息。它们可以跟随角色移动,并且可以显示和隐藏。今天我们就来学习一下这些功能的实现方法。     1. 新建unity工程,导入NGUI插件。对于字体按钮等的制作方法参见以前的系列教程。这里我们直接开始学习制作方法。首先新建一个2DUI

huang9012的专栏 1604

unity 战斗系统设计——角色管理

采用角色管理类和角色类组成,每个角色自己维护自己,角色管理器负责存放所以角色方便后面的战斗系统在战斗中添加角色。

qq_62127309的博客 584

【亲测免费】 探秘NDui:一款全能的魔兽世界UI增强神器

探秘NDui:一款全能的魔兽世界UI增强神器 在魔兽世界的游戏世界中,一个简洁高效的用户界面(UI)是提升游戏体验的关键。NDui,这款由Siweia开发的UI框架,不仅改变了你的游戏视觉效果,更集成了强大的功能模块,让你在游戏中如虎添翼。 一、项目介绍 NDui是一款全面重构的UI插件,它不仅仅是一个外观调整工具,内置了各种实用功能,包括但不限于光环监视器、工具栏、多语言支持(简体中文、繁体中文...

gitblog_00021的博客 1万+

【Unity】NGUI下载与导入

Unity3D插件NGUI的下载和导入。

Get your hands dirty 3万+

Ngui中文字库创建实操教程.zip

在现代游戏开发中,高效且可定制的UI系统对于提供引人入胜的用户体验至关重要。Unity引擎提供了一个全面的解决方案,但在高级自定义和性能优化方面,Ngui UI库成为了许多开发者的选择。Ngui是一个强大的UI工具集,它增强了Unity的原生UI功能,允许开发者构建复杂且高度优化的用户界面。Ngui不仅仅是一个UI框架,它还提供了对TrueType Fonts (TTF) 和 OpenType Fonts (OTF) 的支持,这使得集成高级文本排版成为可能。

weixin_29940495的博客 852

unity 使用NGUI 显示角色血条和名字

Vector3 screenPos = Camera.main.WorldToScreenPoint(mWorldPosition); Vector3 uiWorldPos = mUICamera.ScreenToWorldPoint(screenPos); mCachedTrans.position = uiWorldPos;

oSKyTonight的专栏 7410

Unity NGUI与UGUI学习教程合集

Unity是一个跨平台的游戏开发引擎,由Unity Technologies开发。自从2005年首次发布以来,它已经成为开发2D和3D游戏、模拟器以及其他实时互动内容的主要工具之一。它的普及得益于其易用性、跨平台能力以及庞大的社区支持。NGUI for Unity是游戏开发领域内非常流行的一个用户界面系统插件,被广泛应用于Unity 3D游戏开发中。它提供了一系列工具,用于创建各种交互式用户界面。NGUI主要特点包括高效、轻量级、以及高度可定制性。UI元素管理。

weixin_33759613的博客 986

Unity3D NGUI系列教程一

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackageàcustom package,选择你下载的NGUI插件,导入完成后效果如图: 1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择AddLayer

poem_of_sunshine的专栏 2万+

Flutter模块打包AAR集成Android原生项目实践

跨平台开发框架Flutter通过将UI组件渲染为原生代码实现高性能表现,其核心优势在于一套代码可同时运行在iOS和Android平台。在工程实践中,将Flutter模块打包为AAR(Android Archive)进行集成,成为混合开发的主流方案。这种方案既保留了原生项目的稳定性,又能渐进式引入Flutter的高效开发特性。通过配置MethodChannel实现原生与Dart代码通信,开发者可以灵活控制Flutter引擎生命周期,优化内存占用和渲染性能。对于电商、社交等需要快速迭代的业务场景,该方案能显著提

weixin_34025051的博客 399

Bellhop水声信道模型的仿真

Bellhop是一种基于射线追踪的水声信道模型,广泛用于预测水下环境中的声压场。它通过模拟声波在水中的传播路径,计算声场分布,适用于复杂的水下通信场景。

yt94832的博客 1312

Unity3D之NGUI 系列教程(一)

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackage àcustom package,选择你下载的NGUI插件,导入完成后效果如图:     1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择Ad

仰望星空 3840

Unity 机械臂控制(二)——从碰撞检测到姿态解算:实现精准抓取

本文详细介绍了Unity中机械臂控制的实现方法,从碰撞检测到姿态解算,涵盖精准抓取的全流程。重点讲解了碰撞检测的分层处理、状态机设计、逆向运动学(IK)算法以及抓取稳定性优化等关键技术,并提供了实用的调试技巧和性能优化建议,帮助开发者实现高效的机械臂控制。

weixin_28693447的博客 304

NGUI系列教程一

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackage àcustom package,选择你下载的NGUI插件,导入完成后效果如图:      1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择AddL

huang9012的专栏 3076

鼎捷T100——二次开发:维护作业添加非实体字段

非实体字段添加

weixin_52342654的博客 1159

DBeaver连接IoTDB避坑指南:手动配置JDBC驱动的完整流程(附问题排查)

本文提供了在DBeaver中手动配置Apache IoTDB JDBC驱动的完整流程与避坑指南。详细解析了从驱动创建、库文件添加(关键是指向整个lib目录)到连接测试的每一步,并重点针对常见的ClassNotFoundException、连接拒绝等错误提供了深度排查方案,帮助用户高效建立图形化管理连接。

weixin_28327051的博客 394

Unity3d ngui基础教程

NGUI教程:步骤1-Scene         更多精彩请关注【狗刨学习网】       1.创建一个新的场景(New Scene)。       2.选择并删除场景里的MainCamera。       3.在NGUI菜单下选择Create a New UI,会打开UI创建向导。           

Carl180的专栏 1227

【LLM评估篇】Ceval | GAIA | MMLU benchmarks

- 一些大模型的评估模型: - 多轮:MTBench - 关注评估:agent bench - 长文本评估:longbench,longeval - 工具调用评估:toolbench - 安全评估:cvalue,safetyprompt等 本文还介绍了其他主流的大模型评估指标等及其使用

发现问题,并解决问题,批判性思维 6945

NGUI系列教程七(3D视图&ScrollView)

今天我们通过一个综合的例子来讲解NGUI的3dUI 和ScrollView。本例结合是了NGUI官方自带例子中的Example 6 - Draggable Window和Example 7 - Scroll View (Panel)两个场景的内容来讲的,帮助大家更好的理解这两个场景的内容。如果大家对这两个场景都很精通的话,可以忽略此教程。最终实现结果如下图: 1.首先新建一个场景,通

poem_of_sunshine的专栏 2803

rk3588调试imx415记录

分享适配imx415的软件配置以及一些关键的调试命令

m0_60805802的博客 2888

基于STM32L4XX、HAL库的ESP32-S3-WROOM-1-N4 WIFI模块驱动程序设计

/ 检查是否收到完整的一行(以\r\n结尾)// 例如: 解析AT命令响应或MQTT消息等。// UART2初始化已在CubeMX中配置。// USART2初始化函数(由CubeMX生成)// 缓冲区溢出,重置。// 如果需要等待响应。// 处理接收到的数据。// 处理接收到的数据。// 等待ESP32模块启动。// 主循环其他任务。// 启用UART全局中断。// 发送HTTP GET请求。// 发送AT测试命令。// 连接Wi-Fi。// UART中断回调函数。

zhusl6688的博客 286

NGUI基本控件的使用教程与实例

在前往下一章的学习之前,你可以尝试添加更多的控件,比如加入一个Sliced Sprite(一个含有9个切片的Sprite,创建固定边框的控件最佳选择),一个Tiled Sprite(一个Sprite缩放填充整个自定义区域)和Filled Sprite(每个Sprite都会有一个单独的参数来控制哪些是可见的,常被用来做进度条或者滚动条)。这个的模板只是为了方便而帮助你开始创建,当你真正使用NGUI的时候,你会经常花很多的时间来复制粘贴整个的小部件而不仅仅是用这个向导。现在,让我们创建第一个控件。

zzjlhlcd的博客 862

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NGUI系列教程二

接下来我们创建一个Label,NGUIàOpen the Widget Wizard,打开widgetTool对话框,在Template中选择Label,确定AddTo右侧选项为panel,点击,Add To完成Label创建。 1.Label属性窗口如图 1.下面的节奏可能有点快,大家可以先熟悉一下上面讲的流程,再进行下面的学习。接下来我们依次创建Button和Input,因为这两个

秋风扶柳笛的专栏 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NGUI

(一)NGUI NGUI概述:NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件, 全面支持iOS/Android和Flash。相比UGUI(Unity自带的UI系统),有着更高的性能和更低的学习难度。 在进入学习之前,首先下载NGUI插件,解压缩并导入到Untiy中:NUGI插件下载链接 NGUI插件包 导入NGUI插件包 导入NGUI插件包之后...

qq_36998053的博客 2552

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: NGUI系列教程 第四部
下一篇: NGUI系列教程 第六部
我是一纸巾
博客等级 码龄12年 14粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值