Unity入门——UI界面

UI是在游戏上的显示页面,是让一些设置和数据在一些特定的地方摆放着,创建一个UI界面,要在 Hierarchy 中右键单击一个空白位置,或使用 Hierarchy 顶部的 Create 按钮,然后选择 UI > Canvas。这时侯在HIerarchy页面还会出现名为 EventSystem。这个是一个游戏对象以方便处理事件和UI交互,无论是否调用该对象,都需放在界面,否则画布会警告。
点开canvas,我们要ui有三个模式
Screen Space - Overlay:这是默认模式,可以让 Unity 在始终在游戏的上层绘制 UI。大多数应用程序使用此模式,因为它们希望 UI 始终位于最上层以便提供所有信息。
Screen Space - Camera:这种模式在与摄像机对齐的平面上绘制 UI。平面的大小确定为始终填充整个屏幕,这样你就可以四处移动摄像机,并且平面将随摄像机一起移动,从而显示与 Overlay 图形相同的形状。但是,由于平面是在世界中绘制的,而不是在屏幕上层绘制的,因此世界中的对象可以绘制在 UI 的上层。
World Space:这种模式可在世界中的任何位置绘制平面。例如,你可以将此平面用作游戏中的计算机屏幕,或者用作墙壁,或者放在角色的上层。这在 3D 游戏中更有用,因为 UI 会随着距离变小。
如果使用第一个模式,无论我们屏幕是多大,UI不会去适应屏幕大小而改变,如果屏幕很小,就会占很大空间,而第二个模式则不会因为屏幕大小变化而变化,他是等比例的放在特定区域。
Unity入门——UI界面_第1张图片通过修改这里参数,可以让我们的UI界面有一定的参考点(瞄点),保持和他的距离,再通过父子级的关系,确定整体的位置
Unity入门——UI界面_第2张图片
在这里添加原图像,如果导入的图片长宽比例不和原图片一样,需点击右下角的设置原生大小,点击矩形工具,长按shift,调整大小。
如要设置血条,我们可以通过设置血量条的拉伸长度来改变血量的多少。再通过脚本来改变血量 。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UIHealthBar : MonoBehaviour
{
    public static UIHealthBar instance { get; private set; }

    public Image mask;
    float originalSize;

    void Awake()
    {
        instance = this;
    }

    void Start()
    {
        originalSize = mask.rectTransform.rect.width;
    }

    public void SetValue(float value)
    {
        mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, originalSize * value);
    }
}

使用 rect.width 获取屏幕上的大小和使用 SetSizeWithCurrentAnchors 从代码中设置大小和锚点,make来控制血量条在血量槽里遮掩的体积。

你可能感兴趣的:(游戏,Unity,c#,游戏,游戏开发,c#)