Unity | 渡鸦避难所-9 | 角色名字及血条等信息

1 效果预览

游戏中角色的名字和血条是非常重要的元素,它们可以帮助玩家了解角色的身份和状态。在 Unity 中,可以使用 UGUI 来实现这些功能

2 实现方案

1 画布 (Canvas)

画布 (Canvas) 组件表示进行 UI 布局和渲染的抽象空间。所有 UI 元素都必须是附加了画布组件的游戏对象的子对象。从菜单 (GameObject > Create UI) 创建 UI 元素对象时,如果场景中没有画布 (Canvas) 对象,则会自动创建该对象。更多信息请参阅文档https://docs.unity3d.com/cn/current/Manual/class-Canvas.html

1 Render Mode

UI 在屏幕上或作为 3D 空间对象进行渲染的方式。提供的选项包括 Screen Space - Overlay、Screen Space - Camera 和 World Space

World Space 模式将 UI 视为场景中的平面对象进行渲染。但是,与 Screen Space - Camera 模式不同,该平面不需要面对摄像机,可以根据喜好任意定向。画布的大小可以使用矩形变换来设置,但画布在屏幕上的大小将取决于摄像机的视角和距离。其他场景对象可以位于画布后面、穿透画布或位于画布前面

游戏中角色的名字和血条随着角色移动,具有近大远小的效果,且可以和场景中的其他物体产生遮挡关系,因此这里选择 World Space

2 名字(TextMeshPro)

TextMeshPro 是 Unity 的最终文本解决方案。它是 Unity UI Text 和旧版 Text Mesh 的完美替代方案

功能强大且易于使用的 TextMeshPro(也称为 TMP)使用高级文本渲染技巧以及一组自定义着色器;它大幅改进了视觉质量,同时为用户创建文本样式和纹理提供了难以置信的灵活度

TextMeshPro 能够更好地控制文本格式和布局,提供了字符、单词、行和段落间距调整、字距调整、文本对齐、链接、超过 30 种富文本标签、多种字体和精灵支持、自定义样式等功能

强大的性能。由于 TextMeshPro 创建的几何体与 Unity 的文本组件一样,每个字符都使用两个三角形,因此这种改进的视觉质量和灵活性不会带来任何性能成本的损失

在 Hierarchy 中目标对象右键 UI > Text - TextMeshPro,在 Inspector 中调整文本的位置、对齐方式等,

角色名字不需要点击事件,为了节约性能,点击 Extra Settings,取消 Raycast Target 的勾选

为了让 TextMeshPro 组件自适应文本内容的尺寸,需要添加 Content Size Fitter 组件,宽高适配均选择为 Preferred Size。关于该组件更多信息,请参阅文档:https://docs.unity3d.com/cn/current/Manual/script-ContentSizeFitter.html

3 血条(Image)

血条的显示需要两张图片,黑色做背景,上面叠加当前血量。角色在受伤或者治疗时,血条跟随血量变化更改尺寸

资源有限,这里仅通过更改 Image 组件的颜色来实现该功能。更多关于 Image 组件的信息,请参阅文档:https://docs.unity3d.com/cn/current/Manual/script-Image.html

在 Hierarchy 中目标对象右键 UI > Image,在 Inspector 中调整图片的锚点、位置、尺寸、颜色等。血条也不需要点击事件,同样取消 Raycast Target 的勾选

如果使用图片的话,可以更改 Image Type 为 Filled,Fill Method 设置为 Horizontal,Fill Origin 设置为 Left。通过脚本改变 Fill Amount 属性,血条的宽度就会从左侧开始改变

Source Image 为空的话,只能通过更改 Anchors,让 Image 组件在改变宽度时,保持左侧位置不变

更过脚本更改 Image 宽度:

public void UpdateHp(int hp)
{float width = hp / _totalHp * 1.2f;hpBar.sizeDelta = new Vector2(width, hpBar.sizeDelta.y);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/447690.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Keil软件某些汉字输出乱码,0xFD问题,51单片机

1. 问题 keil软件输入某些汉字的时候会输出乱码,例如:升、 数 2. 原因 keil软件会忽略0xFD。 升的GB2312编码为 0xc9fd,keil解析为0xc9数的GB2312编码为 0xcafd,keil解析为0xca 关于Keil软件中0xFD问题的说明 3. 解决方案1 …

协作办公开源神器:ONLYOFFICE

目录 前言ONLYOFFICE为什么选择ONLYOFFICE强大的文档编辑功能多种协作方式多人在线协同支持跨端多平台连接器安全性极高本地部署 ONLYOFFICE 8.0版本震撼来袭可填写的 PDF 表单显示协作用户头像更新插件界面设计更快更强大 总结 前言 近几年来,随着互联网技术的不断…

gilab 展示测试用例结果详情页面

Python 此示例使用带有 --junitxmlreport.xml 标志的 pytest 将输出格式化为 JUnit 报告 XML 格式:gitlab 会自动去解析report.xml 这个文件,并且将每个case的测试结果展示在gitlab中pytest:stage: testscript:- pytest --junitxmlreport.xmlartifacts:w…

PyTorch的nn.Module类的详细介绍

在PyTorch中,nn.Module 类是构建神经网络模型的基础类,所有自定义的层、模块或整个神经网络架构都需要继承自这个类。nn.Module 类提供了一系列属性和方法用于管理网络的结构和训练过程中的计算。 1. PyTorch中nn.Module基类的定义 在PyTorch中&#xff…

U盘损坏电脑无法识别怎么修复?

USB闪存器简称为U盘,据谐音也称“优盘”,是一种可移动的存储设备,通过USB接口连接到电脑。因其便于携带且存储容量大,很多用户都使用U盘来存储文件资料、图片、视频等个人数据。但常使用U盘的用户,经常会遇到因U盘损坏…

YOLO系列助力涨点!新SOTA让缺陷检测更准更快!附开源数据集下载

缺陷检测在工业自动化、质量控制、安全检测等多个实际应用中都有着广泛的需求。因此这个方向是相对容易发表高质量论文的,尤其是当研究涉及到创新的算法、改进的技术、新的应用场景或显著提高检测性能时。 在这其中,YOLO系列算法与缺陷检测的结合已经取…

nest.js实现登录验证码功能(学习笔记)

安装express-session npm i express-session 引入 注册session import * as session from express-session;import { NestFactory } from nestjs/core; import {DocumentBuilder,SwaggerModule, } from nestjs/swagger;import { AppModule } from ./app.module;async functio…

废品上门回收小程序搭建全过程

随着人们对环境保护意识的不断增强,废品回收成为了一项重要的社会活动。为了方便废品回收的顾客和回收者之间的联系,废品上门回收小程序成为了一种流行的解决方案。然而,如何选择一款合适的废品上门回收小程序搭建平台呢?下面将为…

【Linux网络编程三】Udp套接字编程(简易版服务器)

【Linux网络编程三】Udp套接字编程(简易版服务器) 一.创建套接字二.绑定网络信息1.构建通信类型2.填充网络信息①网络字节序的port②string类型的ip地址 3.最终绑定 三.读收消息1.服务器端接收消息recvfrom2.服务器端发送消息sendto3.客户端端发送消息sendto4.客户端…

手把手教测试,全网内容最全最深-jmeter-Switch Controller(Switch控制器)

5.1.6.17.Switch Controller(Switch控制器) 主要用于根据参数判断具体执行哪一个取样器。 在Switch Value中设置:数字,就是上图。不常用在Switch Value中设置:${变量名},根据变量名称来决定具体执行哪一个取样器。常用在Switch Value中设置:取样器名称,根据设置的取样器名…

绍兴市越城区人大常委会主任徐荻一行莅临迪捷软件走访慰问

2024年2月2日上午,绍兴市越城区人大常委会主任徐荻一行来到迪捷软件走访慰问高层次人才、迪捷软件董事长康烁,送上节日的问候与新春的祝福。 徐主任一行参观了迪捷软件办公环境,听取了迪捷软件的发展情况和来年规划,亲切询问了康烁…

在openfeign客户端如何获取到服务端抛出的准确异常信息?? openfeign调用(请求/响应)的各个大致过程

在openfeign客户端如何获取到服务端抛出的准确异常信息?? 相关参考背景引入浏览器直接访问Spring的Restful接口(最普遍、简单的访问)示例结论 openfeign客户端调用的情况调用过程示例场景之一(其他场景可类比&#xff…