这几天头发掉的飞快,和微博取关的粉丝数一样。
看官老爷要是觉得看的满意,不妨在评论栏中留个言。
好了,U3D系列终于迎来了第三篇教程,正如所有有名的电影一样,我们这个也是三部曲。
截止到目前,我们已经成功完成了:
1,物体的移动
2,相机跟随
3,可拾取的物体
4,区分了三种碰撞静态,动态,运动学的
如果看见以上四个项目脑中一片模糊的话,请翻阅前两章节。
今天我们要做的东西是计分。
这么简单的功能大家一定都能自己写出来(笑),打开我们之前ball 关联的脚本MoveController。
我们建立一个私有变量作为分数。
private float score;
void Start()
{
score = 0;
}
刷新分数显然是在拾取小球之后的,所以我们在onTriggerEnter()函数中让score自加
void OnTriggerEnter(Collider other)
{
//Destroy(other.gameObject);
if (other.gameObject.tag == "Coins")
{
other.gameObject.SetActive(false);
score++;
}
}
这样我们就拥有了一个变化的分数。但是只是这样是不够的,因为无法显示出来。
在Hierarchy中新建一个GUI text(用户界面文本)
你会发现,页面中央出现了一个gui text
修改一下gui text的属性
修改名字为score,新建一个空物体命名为Txt,Reset;并把score丢到该文件夹下。
把它丢到屏幕右上方(左下角0,0,右上角1,1)但是你发现了找不到了是不是?
因为锚点在左上角,所以他在屏幕外,吧锚点修成右上角,就出现了。(然后按照你的爱好随便改改)
然后结果是这样的。
接下来的手续很简单,在代码中关联他。
新建一个GUItext类型的公有变量和用来更新text的函数
public GUIText win;
void updateScore()
{
scoreTxt.text = "Score:" + score.ToString();
//score是float型的,所以把它变成字符串型
}
然后在start和onTriggerEnter中调用这个函数,使得我们的score每次更改值之后能够实时的显示在屏幕上显示出来。
当然只是在这边声明了这个之后,我们还需要关联一下变量。
把文本对象直接拖动到公有变量Score Txt中
按下播放键,检测一下成果
当然,我们还缺了一个东西,那就是胜利画面。(好吧由于资金不足,所以我们的胜利画面也用GUItext来做好了)
再建立一个GUI对象,就和上面的步骤一致,我们把它叫做Win。拖拽到你喜欢的位置。
打开脚本,建立GUIText公有变量 Win。
我们在start中,让它的文本为空,在吃完了所有的方块之后,赋值“Win!!”
你应该知道怎么做,一个赋值语句,和一个条件判断语句。
Ps,你赋值的对象应该是xx.text。
运行一下
成功了!!!!
如果有问题不能运行,不妨参考一下我的代码。
截止到现在,我们的研发任务基本上已经大功告成了!下一步就是发布。
Ctrl+Shift+B(或者File->Building settings)呼出发布设置页面,选择我们的发布平台,这边我选择Web平台,勾选Add current(添加当前场景)之后按下Build
在短暂的等待生成过后,我们会得到一个html文件和一个Unity3d文件,后者存放了各种数据,用浏览器打开html文件,你就可以玩啦(和4399简直一样有没有)
Ps:之前申请过sae的同学可以新建一个项目,然后把这两个文件打包上传,然后通过访问应用网址就可以运行了,但是需要做一点修改,修改教程出门左拐。
到现在为止,本次教程差不多已经完结了(撒花~~~
总结一下,我们现在学到了如下知识:
1,创建新物体和设置场景
2,设置一些组件,并且使用脚本来实现一些自定义的动作
3,添加灯光,摄像机,碰撞器,触发器以及刚体
4,保存并发布
完结啦,给大家颁发毕业证书。
我是妖哲~下个系列将带来打飞机教程。