Unity3D 热更新技术-脚本(五) NGUI 脚本使用学习 unity 也有一段时间了,从一开始的懵懵懂懂到现在的学有所小成,心里挺是高兴的,不过目前还是处于初学者阶段,很多东西还等着自己去发掘去学习。最近做了一个 3D 俄罗斯方块小游戏作为练手,花了有两个多星期吧,感觉话费太多时间了,中间不断地修改实现的方法,但确实让自己学到很多东西,可能对有些人来说,俄罗斯方块根本算不上什么,不过对于初学者来说,练手还是能学到很多东西的, 好了,废话不多说,接下来说说我如何完成的吧,先贴上最终的效果图-- 来自狗刨学习网其实对于 3D 的俄罗斯方块,我觉得可以用多种方法实现的,一开始,我尝试用 unity 提供的碰撞机制去做这个游戏,结果问题一个个接踵而来,解决了一个又出现了另一个,最后只能上网找教程,网上是有网友实现了的,有一种 unity 实现方法是直接用 GUI ,把 button 当作方块,虽然也能做出很好的效果,但是我觉得这样就不算 3D 了吧。另外我还找到一份代码,它实现了真正意义上的 3d 俄罗斯方块,不过它是 JS 写的,我试着看了一下代码,然后自己用 C# 写了一个自己的,看代码里面的注释,应该是外国的,看完它的代码,着实让我学到很多东西,我之前想通过真正的碰撞去完成这个游戏,结果问题多多,但是网上的这份代码提出了一种很聪明的解决方法,用两个布尔类型的数组分别存放已经固定下来的方块和正在掉落的方块,通过判断下落方块下一个位置对应坐标的布尔值的真假,为真则停止下落,固定位置。另外可以将边界对应的值设为真,从而方块在碰到边界无法继续运动。在检测满一行方块消除的时候也相当的方便,可以直接对布尔数组进行操作。这种思维让我恍然大悟,才发现自己真的是有待提高啊。好了,开始动手,首先你需要一个正方体模型,它的边界需要经过一些处理, 在多个相连的时候才能显现出接痕,这个我自己用 Maya 做了一个,很简单的。然后导入模型的 FBX 文件到你的项目中。接着创建一个新场景,在场景中创建边界,如效果图中所示,用 unity 自带的 Cube 就可以了,改一下一些参数就可以有图中的效果,当然你也可以自己制作边界物体。设置左边界 x 坐标为 3 ,右边界为 14 ,这不是硬性规定说得设置成这样的,这不过是方便我编写代码而已,哦,另外,由于方块的最大 size 是4 ,所以我两边都留出了 4 个位置, 中间 10 个位置是方块可以放置的地方,底边界放置在 0 位置。创建一个空物体对象命名为 Manager ,并为其创建一个绑定脚本 , 接着一一创建对应方块的空对象,对其各自命名,注意,之前我导入的正方体只是方块的组成单体,不同形状的方块需要四个正方体拼接在一起,正常俄罗斯方块游戏中有 7 种方块,将这七个空物体对象创建为 Prefab ,一一对应命名,再接着为方块创建绑定脚本,这里,我只需要一个脚本文件,即 7 种方块都绑定同一个脚本。我试过各自做出七个不同的模型,结果,很麻烦,由于模型是一个整体,消除部分是一个问题,然后我还要写七个脚本对应不同的方块,其实有很多东西是一样的,这简直就是浪费时间和资源。然后我发现了网上代码中用了一种和巧妙的方法,在绑定的脚本中,设置一个公有的字符串数组,值只有 0和1 ,显示出方块的形状,比如直方块,即 4 个正
Unity3D热更新技术-脚本(五) NGUI脚本使用 来自淘豆网m.daumloan.com转载请标明出处.