GUI和完善飞机大战

Unity GUI 实战教程

欢迎来到 unity 学习 、 unity 培训 、 unity 企业培训 教育专区,这里有很多 U3D 资源 、 U3D 培训视频 U3D 教 程 、 U3D 常见问题 、 U3D 项目源码 , 我们致力于打造业内 unity3d 培训 、学习第一品牌

我们将了一些GUI的基本事件和用法:

  现在总结一下有几种啊

1、Label

Label (position : Rect, content : GUIContent) : void

Label (position : Rect, text : string, style : GUIStyle) : void

public Texture2D img;

void OnGUI() {

        GUI.Label(new Rect(10, 10, 100, 20), "Hello World!");

        GUI.Label(new Rect(10,50,img.width,img.height),img);

}

2.Box:

public Texture2D img;

void OnGUI() {

        GUI.Box(new Rect(10, 10, 100, 20), "Hello World!");

        GUI.Box(new Rect(10,50,img.width,img.height),img);

}

3.Button:

public Texture2D img;

 

void OnGUI() {

        GUI.Button(new Rect(10, 10, 100, 20), "Hello World!");

        GUI.Button(new Rect(10,50,img.width,img.height),img);

}

GUI.Button(new Rect(10, 80, 150, 20), new GUIContent("我有提示", "恭喜你中奖了!"));

// 在旁边的位置显示提示信息。

GUI.Label(new Rect(130, 40, 150, 40), GUI.tooltip);

 

//按钮上面有图片

GUI.Button(new Rect(10, 180, 150, 20), new GUIContent("我有提示", img));

4.RepeatButton

5、TextField 

string str="Hello World"

str = GUI.TextField(new Rect(10, 10, 200, 20), str);

str = GUI.TextField(new Rect(10, 10, 200, 20), str, 25);

6 PasswordField


"*"[0]等价于'*'

string str= "请输入密码:";

str= GUI.PasswordField(new Rect(10, 10, 200, 20), str, "*"[0]);

str= GUI.PasswordField(new Rect(10, 10, 200, 20), str, "*"[0],10);

7.TextArea

然后用把这写东西运用到了飞机大战中,可以显示分数和生命值

在空对象上加了如下代码:

public Player player;

public int lifetime=0;

public int scroce=0;

public static GameMange instance;

// Use this for initialization

void Start () {

instance = this;

player = GameObject.FindGameObjectWithTag("Player").GetComponent<Player>();

//find找的那个是标签,getcomponent找的是那个类啊。

 

}

// Update is called once per frame

void Update () {

}

void OnGUI() {

lifetime = player.a;

GUI.Label(new Rect(20,30,100,20),"生命值为:"+lifetime);

GUI.Label(new Rect(20, 70, 100, 20), "分数:"+scroce );

}

然后又在那个触发器上面加上一行代码:

  GameMange.instance.scroce++;

最后又在另一个空对象上加上下面的代码完成敌机的无限个啊 

public GameObject [] enemy;

int number=5;

// Use this for initialization

void Start () {

StartCoroutine ("Spwn");

}

// Update is called once per frame

void Update () {

}

IEnumerator  Spwn(){

yield return  new WaitForSeconds (3.0f);//开始等待3

while (true) {

while (number>0) {

GameObject go = enemy [Random .Range (0, enemy .Length)];

Vector3 pos = new Vector3 (Random.Range (-10f,10f),21.55587f,-28f);

//控制敌机随机出现的范围

GameObject.Instantiate (go,pos,transform .rotation );

yield return new WaitForSeconds (2.0f);//每隔两秒克隆一个啊

number--;

}

number =5;

yield return new WaitForSeconds (4.0f);//每隔4秒开始下一波

 

}

 

 

}

这里面用到了数组,协程 和克隆的技术。

 

 

 

 

 

 

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值