赞
踩
1. 血条(Health Bar)的预制设计。具体要求如下
效果展示:
实现:
制作一个红色cube作为血条,并用脚本控制血条的位置,添加两个button用来加减血量
以上脚本挂载在预制的cube上,并且把人物作为共有变量以确定血条的位置
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- public class healthBar : MonoBehaviour
- {
- float padding = 0;
- public Transform t;
- // Start is called before the first frame update
- void Start(){ }
-
- // Update is called once per frame
- void Update()
- {
- this.transform.position = new Vector3(t.position.x-padding, t.position.y + 2, t.position.z);
- }
-
- private void OnGUI()
- {
- //加血
- if (GUI.Button(new Rect(250, 50, 40, 20), "+"))
- {
- padding -= 0.05f;
- transform.localScale = new Vector3(transform.localScale.x + 0.1f, transform.localScale.y, transform.localScale.z);
- }
-
- //扣血
- if (GUI.Button(new Rect(250, 70, 40, 20), "-"))
- {
- if (transform.localScale.x > 0)
- {
- padding += 0.05f;
- transform.localScale = new Vector3(transform.localScale.x - 0.1f, transform.localScale.y, transform.localScale.z);
- }
- }
- }
- }
效果展示:
实现:
创建一个人物对象,给它添加canvas画布子对象,并添加 Slider 作为血条主体。
将 Slider 中的 Handle Slider Area 、 Background 禁用,并且设置Fill的Image组件颜色为红色,调整Slider 组件的MaxValue 为 100、Value 为 75。
并给 Canvas 添加以下脚本 LookAtCamera.cs
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
-
- public class LookAtCamera : MonoBehaviour {
-
- void Update () {
- this.transform.LookAt (Camera.main.transform.position);
- }
- }
-
使用时,只需要勾选Canvas或者healthBar
IMGUI
实现简单,比如绘制一个控件,只需要GUI.Lable()、GUI.Button()这样即可,不需要使用UI组件,很容易上手。IMGUI的存在符合游戏编程的传统,在修改模型,渲染模型这样的经典游戏循环编程模式中,在渲染阶段之后,绘制 UI 界面无可挑剔。避免了 UI 元素保持在屏幕最前端,又有最佳的执行效率,一切控制掌握在程序员手中,这对早期计算和存储资源贫乏的游戏设备来说,更是弥足珍贵。
UGUI
可视化,所见即所得(WYSIWYG)设计工具,设计师也能参与程序开发,支持多模式、多摄像机渲染,UI 元素与游戏场景融为一体的交互,UGUI的控件是以“游戏对象”的形式存在与游戏场景中,这样直观易于使用,直接可以在Scene视图中编辑大小、位置、旋转角度、缩放等等,不需要手动写任何代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。