玩家信息血条及伤害值随主角移动

unity2d游戏开发系列教程:四、一个2D游戏所需要的主要功能(游戏框架) 目录 unity2d游戏开发系列教程:一、环境安装 unity2d游戏开发系列教程:二、新建工程并熟悉Unity编辑器常用功能 unity2d游戏开发系列教程:三、场景布置,增加怪物和机关 阅读详情

  许多RPG游戏中绝对少不了的就是玩家信息的动态显示,包括玩家姓名,等级,生命值,被攻击时生命值的减少等。

今天我们来共同学习一下怎么制作。搞起。。。。

1,首先导入NGUI,感觉NGUI做UI还是挺方便的。

2,创建玩家Player可用cube代替且在cube下创建子物体head位置默认值归零,用途:玩家信息显示位置。

3,使用NGUI创建玩家信息跟随,结构如下:

4,贴代码:NewBehaviourScript.cs挂到MainCamera上

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

    //角色
    public Transform Cube;
    //要岁主角移动的信息 血条,名称
    public Transform UI;

    //默认血条与摄像机的距离
    private float Fomat;
    //角色头顶位置
    private Transform Head;

    void Start () 
    {
        //找到角色头顶点
        Head = Cube.Find("head");
        //计算一下默认血条的距离 
        Fomat  = Vector3.Distance(Head.position,Camera.main.transform.position);
        Debug.Log (Fomat);
    }
    
    void Update () 
    {
        //这里可以判断一下,如果位置没发生变化课不再赋值
        float newFomat = Fomat / Vector3.Distance(Head.position,Camera.main.transform.position);
        UI.position  = WorldToUI(Head.position);
        //计算血条的缩放比例
        UI.localScale = Vector3.one * newFomat;

        //测试代码 移动角色
        if(Input.GetKey(KeyCode.W))
            Cube.Translate(Vector3.forward);
        if(Input.GetKey(KeyCode.S))
            Cube.Translate(Vector3.back);
        if(Input.GetKeyDown(KeyCode.A))
            Cube.Translate(Vector3.left);
        if(Input.GetKeyDown(KeyCode.D))
            Cube.Translate(Vector3.right);
    }


    //3D坐标转换为NGUI屏幕上的2D坐标
    public static Vector3 WorldToUI(Vector3 point)
    {
        Vector3 pt = Camera.main.WorldToScreenPoint(point);
        //UICamera.currentCamer 
        Vector3 ff = UICamera.currentCamera.ScreenToWorldPoint(pt);
        //UI的Z轴为0
        ff.z = 0;
        return ff;
    }
}
View Code

%26nbsp;5,另一个脚本cube.csgua挂在player上

%26nbsp;

using UnityEngine;
using System.Collections;



public class cube : MonoBehaviour 
{
    public GameObject fg;
    private GameObject sprite;
    public GameObject harm;
    public UILabel hp;
    // Use this for initialization
    void Start ()
    {
        harm.SetActive(false);
        hp.text = "HP:100/100";
    }
    
    // Update is called once per frame
    void Update () 
    {
        
    }

    void OnMouseDown()
    {
        if(fg.GetComponent%26lt;UISprite%26gt;().fillAmount%26gt;0)
        {
            fg.GetComponent%26lt;UISprite%26gt;().fillAmount -= 0.1f;
            harm.SetActive(true);
            hp.text = ((int)(fg.GetComponent%26lt;UISprite%26gt;().fillAmount*100)).ToString()+"/100";
        }

        Debug.Log (fg.GetComponent%26lt;UISprite%26gt;().fillAmount);
    }
    void OnMouseUp()
    {
        harm.SetActive(false);
    }
}
View Code

6,运行效果:

7,点击物体模拟被攻击,看血量减少,并弹出被攻击值。

玩家挂了

%26nbsp;

项目源码:

链接:http://pan.baidu.com/s/1jGDpZF4 密码:vh5p

如果打不开,请检查Unity版本哦,本人测试的是4.5.

商业ARPG主角系统架构设计:组件化、ECS与事件驱动实践 在游戏开发领域,构建可维护、高性能的代码架构是项目成功的基石。组件化设计通过“组合优于继承”的原则,将复杂实体拆分为职责单一的功能模块,有效解决了传统继承树带来的代码臃肿和难以扩展的问题。其技术价值在于大幅提升代码复用性、降低模块间耦合度,使系统更易于迭代和维护。进一步引入ECS(实体-组件-系统)架构思想,实现数据与逻辑的彻底分离,能显著优化CPU缓存命中率,尤其适合处理大量实体的实时更新,为游戏性能提供保障。在应用场景上,这种架构模式特别适合需要高实时响应、复杂状态管理和频繁功能扩展的商业级动作角色扮演 阅读详情

相关推荐

【制作100个unity游戏之22】3DRPG游戏开发07——其他详细的设计

我们会有有很多单例,如果每个单例都去写会很麻烦,所以我们定义泛型单例模式 Singleton,我们将所有的单例都继承这个泛型单例,就省略很多重复的工作定义一个GameManager类,继承Singleton,控制整个游戏的进度,比如如果主角死了,广播,游戏结束调用。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2577

java中编游戏人物血量控制_个人学java时写的游戏,由简单功能的组合,适合新人...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼Eclipse编写,直接建个java复制粘结就可以了游戏一:随机选5个数组合,猜出这5个数,要求位置一样package day; import java.util.Random;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern; p...

weixin_29237635的博客 721

java编写的简单打怪兽游戏

编写出一个2字形的游戏路径,在路径中会随机有怪兽或是补充能量等图标,按空格键,玩家会随机向前走,若遇到怪兽则生命值将会相应减少,直到玩家生命值为零或是走完全程为止

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

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

Game_List的博客 2057

unity血条及文字显示代码

包含SetTextByText,SliderAddValue等五个代码,可使用于游戏的血条显示等

Qt 文件对话框(QFileDialog)实战指南 —— 从基础到高级应用

本文是Qt文件对话框(QFileDialog)的实战指南,从基础静态函数调用到高级对象模式应用,全面解析了文件选择、保存、目录选取及多选等核心功能。文章深入探讨了MIME类型过滤、自定义侧边栏、信号槽实时响应及状态持久化等高级技巧,并提供了跨平台开发中的避坑指南与最佳实践,帮助开发者高效、稳健地集成文件操作功能。

weixin_29306261的博客 376

Wotr-BD-LR骑乘战斗机制详解:坐骑选择与冲锋伤害计算

在《开拓者:正义之怒》中,骑乘战斗是一种极具策略性的战斗方式,能够通过坐骑的移动和冲锋动作造成巨额伤害。本文将详细解析Wotr-BD-LR项目中的骑乘战斗机制,包括核心专长搭配、坐骑选择策略以及冲锋伤害的具体计算方法,帮助新手玩家快速掌握这一强力玩法。 ## 一、骑乘战斗核心机制与必备专长 骑乘战斗的核心在于利用坐骑的移动能力发起冲锋,配合特定专长和装备实现伤害最大化。根据项目中的BD配置,*

gitblog_07327的博客 737

科研作图不发愁:手把手教你用PyMOL给蛋白-DNA互作图‘美颜’(附完整配色与标注方案)

本文详细介绍了如何使用PyMOL对蛋白-DNA互作结构图进行专业美化,包括从PDB文件加载、结构展示与标注、互作位点突出显示到高质量渲染输出的完整流程。通过具体案例(PDB ID:8SSS)演示了锌指结构域区分、关键残基标注和互作距离测量等实用技巧,帮助科研人员制作可直接用于期刊投稿的高质量示意图。

weixin_42523792的博客 554

Path of Building 新手完整教程:10分钟掌握流放之路离线Build规划与伤害模拟

深夜两点,你的角色又一次倒在Boss面前。面板上的伤害数字看起来不算低,实战却"刮痧"得让人心碎。朋友丢过来一句话:"用PoB跑一下就明白了。"他说的,就是今天的主角——**Path of Building(PoB)**,一款流放之路(Path of Exile)专用的免费离线Build规划工具,用来精确计算伤害、模拟天赋树、分析装备词缀。这篇文章会跟着一位新手的真实使用过程,带你从安装到进阶,1

gitblog_00926的博客 799

记录:N10激光雷达串口编程,将数据存进 SQLite,并进行 ROS2 - cartographer 单雷达建图

N10 系列采用 TOF(time of flight)测距原理,通过测量调制激光的发射、返回时间差来测量物体与传感器的相对距离。激光发射器发出调制脉冲激光,内部定时器开始 从t1时刻计算时间,当激光照射到目标物体后,部分能量返回,当雷达接收到返回的激光信号时,在t2时刻停止内部定时器计时,光速C,激光雷达到达物体的距离D为:经过N10系列激光雷达内嵌的信号处理单元的实时解算得到探测物体的距离值,结合高精度自适应角度测量模块输出的角度信息,可以得到量程内周围 360 度环境 的二维平面信息。

m0_74013893的博客 1097

2023-12-26~2025-07-04备份

一、海康视觉与汇川机器人 服务器-客户端通信设置IP在同一网段名称IP端口类型海康相机工控机7930服务器机器人3000客户端海康VM服务器设置1通信管理 增添TCP服务端,设置本机IP:192.168.0.20,端口号79302 协议解析 通信双方约定通信格式(设置收发数据格式,分隔符)机器人客户端设置(不同类型机器人设置有差别)1 通讯服务设置 设置连接服务器IP、服务端端口号、机器人端口号,确保连接正常2 协议解析 使用指令代码构建通讯解析。

青铜小码农 3132

UE5战斗系统开发实战:从连击判定到伤害反馈的完整实现

在游戏开发中,战斗系统是动作游戏的核心交互模块,其设计质量直接影响玩家的操作体验。从技术原理层面看,一个健壮的近战战斗系统通常基于状态机驱动角色行为,通过精确的碰撞检测实现命中判定,并构建多层次反馈链来增强打击感。在虚幻引擎中,动画蓝图与状态机负责管理攻击、连击等状态转换,而碰撞盒组件结合动画通知机制则实现了帧精确的命中检测。这套技术方案的价值在于能够创建响应迅速、反馈清晰的战斗体验,是ARPG、动作冒险等类型游戏的开发基础。本文聚焦于UE5.7环境,通过实战演示如何构建包含连击管理、碰撞检测及伤害反馈的完

weixin_34406086的博客 609

告别信号干扰!手把手教你用INA333搭建高精度压力传感器电路(附PCB布线要点)

本文详细介绍了如何使用INA333仪表放大器搭建高精度压力传感器电路,解决工业测量中的信号干扰问题。从芯片选型、电路设计到PCB布线要点,全面解析INA333的低功耗、精密信号调理特性,并提供实用的抗干扰技巧和校准方法,助力工程师实现稳定可靠的传感器信号采集。

weixin_33738555的博客 570

UE5.7战斗系统实战:连击、命中与伤害反馈全流程开发指南

在游戏开发中,战斗系统是动作类游戏的核心,其关键在于实现流畅的交互与即时的反馈,这直接决定了玩家的操作手感和游戏体验。从技术原理上看,一套完整的战斗系统通常围绕输入响应、状态管理、物理检测和实时反馈等多个模块协同工作。其技术价值在于,通过高效的算法和合理的架构,能够在有限的硬件资源下,为玩家提供稳定、流畅且富有冲击力的战斗体验。在应用场景上,无论是独立游戏的原型验证,还是商业项目的战斗模块开发,一套清晰、可复用的战斗逻辑框架都是提升开发效率的关键。本文聚焦于使用Unreal Engine 5.7,深入探讨如

cuixie2370的博客 357

180.在 Vue3 中使用 OpenLayers 实现多个多边形的绘制、编辑、删除与清空

【摘要】本文介绍如何在Vue3+TypeScript环境下使用OpenLayers实现多边形地图交互功能。通过Composition API封装核心逻辑,实现了多边形绘制、编辑、删除及清空等操作。关键技术包括:使用VectorLayer管理图形数据,Draw/Modify/Select交互控制,以及通过ref()管理交互状态。文中提供了完整代码示例,并解决了交互对象叠加问题,为开发GIS应用提供了基础模块。该方案支持扩展为数据库存储、后端交互等高级功能。

小彭的博客 770

Android性能分析——hprof文件分析(一)

hprof  文件是 Java 堆转储文件(Heap Dump File)的标准格式,用于保存 Java 虚拟机(JVM)在某个时间点的内存快照。这种文件对于分析内存泄漏、内存使用情况和对象分配模式非常有用。

小旭的专栏 1892

OFA-VE效果展示:游戏截图+剧情描述‘主角已击败Boss’逻辑验证

本文介绍了如何在星图GPU平台上自动化部署OFA-VE: 赛博风格视觉蕴含智能分析系统镜像,实现游戏截图与剧情文本(如‘主角已击败Boss’)之间的逻辑一致性验证。该系统通过多模态推理判断图像是否真实支持文字描述,广泛应用于游戏测试、电商合规审查及工业质检等需事实核查的场景。

weixin_42504649的博客 400

模型可解释性分析:基于SHAP的深度探索

SHAP模型可解释性分析摘要 本文系统性地介绍了SHAP(SHapley Additive exPlanations)方法在机器学习模型可解释性分析中的应用。SHAP基于博弈论的Shapley值理论,为特征重要性评估提供了统一框架。文章详细阐述了四种核心算法:Kernel SHAP(模型无关方法)、Tree SHAP(针对树模型的高效算法)、Deep SHAP(适用于深度学习)和Linear SHAP(线性模型专用)。通过Python实现展示了从数据准备到SHAP分析的全流程,包括摘要图、依赖图等可视化技术

huanghm88的专栏 615

Unity_ARPG_Demo开发实战

本文介绍了Unity ARPG小游戏Demo的开发过程,重点讲解动画事件驱动的攻击判定系统与敌人AI状态机。通过动态生成攻击判定盒实现精准战斗反馈,利用仇恨机制控制敌人巡逻、追击、攻击行为,并涵盖角色控制、Unity寻路、UI与音频等实战要点。

Ambitiongtgygy的博客 331

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机网络新手实操,嗜血印新手操作入门指南 游戏基础玩法攻略介绍

《嗜血印》是一款国产的武侠动作类游戏,游戏已经在STEAM上正式上市,售价39元,喜欢该类型的玩家可以考虑进行购买,下面就为大家带来嗜血印新手操作入门指南。上手指南:按键操作:前/后/左/右移动-W/S/A/D键跳跃-Space空格键躲闪-Shift键防御-F键行走-Ctrl+W/S/A/D移动键远程飞刀-R键邪魂钩-C键互动-E键换武器-Q键嗜血印技能-1/2/3键系统菜单-Esc键界面介绍:游...

weixin_35038173的博客 1021

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

正义之怒主角Build终极指南:Wotr-BD-LR资料库从入门到不公平通关

《开拓者:正义之怒》的角色构建系统深似海,无数玩家卡在开卡第一步。本文围绕开源项目 **Wotr-BD-LR 正义之怒主角Build搜集库**,带你梳理这份持续更新的高含金量攻略文档:从开卡教学、职业评级到斩矛剑圣与魔能射手等王牌构筑的完整抄作业模板,让你少走三年弯路,直接从"看啥都想点"进化到"按图索骥暴力通关"。 ## 一、为什么你抄的作业总是翻车:先搞懂这份资料库解决什么问题 很多新手的

gitblog_00580的博客 340

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

[C++] 联网单人副本闯关游戏--服务器部分

在基本游戏逻辑的基础上增添了联网和副本选择功能实现了玩家的登录注册、场景信息下发、场景信息同步和校验、玩家断线重连、副本得分结算与排行榜逻辑使用注册的形式将编译时硬编码转为运行时注册优化CMD分发,使用运行时类型判断简化同步信息处理逻辑。

Zireael2019的博客 1560
上一篇: Safari5及以下版本不支持Date的横杠字符串格式
下一篇: C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
lin91o7c
博客等级 码龄12年 1粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值