赞
踩
随便创建一个地板、一个胶囊体,搭建一个简易的场景,我这里就继续使用前面文章创建的场景
FREE UI
,PosX:0 PosY:2 PosZ:0
Width:1 Health:0.1
Filled
Horizontal
Left
(默认就是Left)下面就是代码部分,由于篇幅问题,这里只做简单的血量增加和减少的效果,不做受到攻击和恢复的实际场景;
实际游戏场景中的血量增加与恢复涉及到的物体代码相对复杂,后续文章会讲解
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class BloodManager : MonoBehaviour { Image image; [SerializeField]float currentBlood = 1f; [SerializeField] float targetBlood = 1f; [SerializeField] Color bloodColor = Color.red; [SerializeField] float bloodMoveSpeed; // Start is called before the first frame update void Start() { image = GetComponent<Image>(); image.color = bloodColor; image.fillAmount = currentBlood; } // Update is called once per frame void Update() { checkedKey(); if (currentBlood != targetBlood) { currentBlood = Mathf.Lerp(currentBlood,targetBlood,bloodMoveSpeed*Time.deltaTime); image.fillAmount = currentBlood; } } private void checkedKey() { if (Input.anyKeyDown) { if (Input.GetKeyDown(KeyCode.J)) { targetBlood = 0.2f; } else { if (Input.GetKeyDown(KeyCode.K)) { targetBlood = 0.8f; } } } } }
到这里就完成了,可以运行看看效果,
J键是减血;
K键是加血;
需要注意
运行前别忘了修改Bolld Move Speed的值(不然按键是没有反应的),这里建议改为2
,也可以根据自己的需求自行修改
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。