unity3d做会减少的血条_Unity3d制作血条的三种方法

本文介绍了在Unity3d中制作血条的三种方法。第一种方法通过将血条置于Canvas的平面上,利用WorldToScreenPoint转换使其始终面向摄像机并跟随目标物体移动。第二种方法类似,但血条直接位于3D场景中,位置与游戏物体匹配,再进行微调。第三种方法是将血条作为游戏物体的子物体,不强制面向摄像机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

血条这个功能在多数类型的游戏都会有,那么在开发过程中如何制作血条呢?下面给大家分享了三种制作血条的方法。

方法一:(推荐)

结果:血条跟随目标物体移动,血条一直面向摄像机

步骤一:

1.制作一个血条(Image)的预设体;

2.在Canvas 中添加一个Plane,作为血条的父物体;

3.(1,2)准备工作做完了,思路:在生成游戏物体时,生成血条,把游戏物体的3D坐标转换为屏幕坐标,让血条的坐标等于游戏物体的屏幕坐标,如果要修改,可以添加一些偏移,

代码如下

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class EnemyState : MonoBehaviour {

//声明你需要用到的变量

private GameObject HP_imageGameobject;

private GameObject HP_imageGameObjectClone;

private Transform HP_Parent;

private Vector3 EnemySceenPosition;

void Start () {

//获取复制HP的预制体(prefab)

HP_imageGameobject=Resources.Load("Enemys/Image_blod");

//获取放HP血条的父物体

HP_Parent = GameObject.FindWithTag("HPPosition").transform;

//把游戏物体的世界坐标转换为屏幕坐标

EnemySceenPosition=Camera.main.WorldToScreenPoint(transform.position);

//创建一个Clone血条图片

HP_imageGameObjectClone = Instantiate(HP_imageGameobject,EnemySceenPosition, Quaternion.identity);

//设置血条的父物体

HP_imageGameObjectClone.transform.SetParent(HP_Parent);

void Update () {

//没帧都去执行使血条跟随物体

PHFollowEnemy();

//血条放置到Canvas另一个Plane中 并跟随物体移动

void PHFollowEnemy()

//把物体坐标转换为屏幕坐标,修改偏移量

EnemySceenPosition= Camera.main.WorldToScreenPoint(transform.position)+new Vector3(0,50,0);

HP_imageGameObjectClone.transform.position = EnemySceenPosition;

方法二:(推荐)

和方法一相似,只是把血条的坐标转换到3D场景中 ,和游戏物体的坐标相等,之后微调。

方法三:

如果血条不一定面向摄像机,可以把(用Canvas单独做血条)血条设置为游戏物体的子物体;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值