U3D RollingBall 3(完结撒花篇)

来源:互联网 发布:多个淘宝店铺 编辑:程序博客网 时间:2024/05/09 11:22

这几天头发掉的飞快,和微博取关的粉丝数一样。

看官老爷要是觉得看的满意,不妨在评论栏中留个言。


好了,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,保存并发布


完结啦,给大家颁发毕业证书。

我是妖哲~下个系列将带来打飞机教程。


0 0
原创粉丝点击