前言:
此时姐妹们对“字符串的格式控制符用什么表示”大体比较着重,小伙伴们都需要了解一些“字符串的格式控制符用什么表示”的相关文章。那么小编也在网摘上收集了一些对于“字符串的格式控制符用什么表示””的相关文章,希望姐妹们能喜欢,你们一起来了解一下吧!【4.UI和调度器】4.UI与调度器4.1 UI 制作方法将 UI 组件配置到场景视图中;编写切换 UI 的调度器脚本;创建调度器对象并挂载调度器脚本;配置 UI 组件
在层级窗口中选择 Create -> UI -> Text,此时在层级窗口中新增加了一个 Canvas 对象, 在 Canvas 对象下包含了 Text 组件。由于 UI 的设计画面通常比游戏设计画面大很多,所以有时可能无法在场景视图中看到 UI 组件,此时可以在层级窗口中双击 UI 组件,这样视点就移动到了该 UI 组件的附近。
虽然场景视图中的 UI 设计画面看起来很大,但其实际大小与游戏画面是对应的。
修改层级窗口中的 Text 组件的名称为 “Distance”:在层级窗口中选择并单击 Text,此时名称变为可编辑状态,输入:Distance 回车即可。
调整 Text 组件的位置和尺寸:选中组件,在检视器窗口中设置 RectTransform 项的 PosX、PosY、PosZ 依次为0,0,0,Width 和 Heigh 为 360,40,设置 Character 的 Font Size 为 32,Paragraph 的 Alignment 的纵向与横向为居中。
关于 EventSystem
在 UI 控件添加后,在层级窗口中和 “Canvas” 一起添加的还有 “EventSystem”,EventSystem 是一个用于将用户输入转发到各个 UI 组件的中转对象。要正常使用 UI 组件必须有这个对象。
EventSystem 还可以屏蔽输入、修改键盘和鼠标的设置等。
关于 Rect Transform
UI 系统表示组件的坐标并不是 “Transform”,而是“Rect Transform”,其区别:
Transform 能够调整位置、旋转、尺寸等值;而 Rect Transform 在此基础上还能够调整轴心点(pivot)与锚点(anchor)的位置。
轴心点:旋转和缩放时使用的中心点
锚点:放置 UI 组件时的位置基准点
4.2 创建切换 UI 的调度器
创建调度器脚本,代码如下:
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class Director : MonoBehaviour{ GameObject car; GameObject flag; GameObject distance; // Start is called before the first frame update void Start() { car = GameObject.Find("car"); flag = GameObject.Find("flag"); distance = GameObject.Find("Distance"); } // Update is called once per frame void Update() { float XCar = car.transform.position.x; float XFlag = flag.transform.position.x; float length = XFlag - XCar; this.distance.GetComponent<Text>().text = "距离目标:" + length.ToString("f3") + "米"; }}
由于在调度器脚本中需要获取场景中的对象,而在场景中我们使用了 UI 组件,所以需要引入 UnityEngine.UI,用来处理 UI 组件。
要获取游戏对象,可以用 GameObject 的 Find 方法来获取,其参数为游戏对象的名称,如果游戏场景中某对象的名称与参数相同,则返回该对象。
调度器脚本还需要计算小车和旗帜之间的距离,首先需要获取游戏对象的位置,可以使用:
游戏对象.transform.position
来获取其位置,位置数据是一个 Vector3 类型,其 x、y、z 成员变量代表各个轴上的值。
获取 UI 对象,使用:
游戏对象.GetComponent<UI对象类型>()
来获取,其 text 成员变量就是在 Text 组件上显示的文字。
浮点数转换字符串,使用:
浮点数.ToString(格式控制符)
格式控制符:
整型
格式:D[位数] - 转换为整型表示,如果位数不够,则在左侧插入0,如 456.ToString("D5") -> 00456
小数型
格式:F[位数] - 转换为小数形式,指定小数点后的位数,如 12.3456.ToString("F3") - > 12.345
4.3 将脚本挂载到调度器对象上
通常情况下,我们可以使用“空对象”作为调度器对象。给空对象挂载调度器脚本后,该空对象就变成了调度器对象,从而可执行调度任务。所以:
调度器的制作方法:
编写调度器脚本创建空对象给空对象挂载调度器脚本
在层级窗口中创建空对象并挂载刚才创建的调度器脚本,运行游戏,观察效果。
将脚本修改如下:
void Update(){ float XCar = car.transform.position.x; float XFlag = flag.transform.position.x; float length = XFlag - XCar; if (length <= 0) { this.distance.GetComponent<Text>().text = "游戏结束"; } else { this.distance.GetComponent<Text>().text = "距离目标:" + length.ToString("f3") + "米"; }}
再看看效果。
标签: #字符串的格式控制符用什么表示