Unity小球游戏实现

利用Unity做一个小球碰撞Demo。

先附上演示视频。



下载,安装Unity,VS 2015,VS 2015的Unity插件。然后新建工程,建立场景,保存为Ball Game。Layout我选了2 by 3,喜欢其它风格的可以自己设置,在右上角。

新建一个Cube来充当挡板,命名为Plate。方法为GameObject-3D Object-Cube。这里Scale设置为5,0.2,3,这样设置就将一个正方体转化为一个挡板。其实也可以直接用加Plane,但是Plane略大。

Unity Ball Game Plate

新建一个Sphere来充当小球。方法为GameObject-3D Object-Sphere。这里Scale可以保持为1,1,1,也可以像我一样改大点。Position也要设置,改为0,3,0.这样在Game视图中就可以看到小球位于挡板上方。小球还需要设置刚体属性,也即Rigidbody,这里我将质量改为0.1,勾选使用重力。点击Play就可以看到小球落下。

Unity Ball Game Ball

物体已经构建完毕,接下来就是为它们添加行为了。

首先说说小球,当它与挡板碰撞时我们希望它弹起来,因此需要添加对应的脚本,这里我使用C#。点击对应的物件,在Inspector中点击Add Component,搜索Script,写好Name后语言选择C Sharp,点击Creat and Add。具体代码如下。

Unity Ball Game Control

设置力的大小为20.0f,设置私有变量rigid。在开始后小球的刚体属性就被rigid所获取。在更新时候会进行判断,如果小球的y坐标小于0那么销毁该小球,退出应用。在碰撞发生时,会给小球的施加一个力,其中x方向设置为随机,大小为(-30.0f,30.0f),y方向为40.0f,z方向为0f。

其次是挡板,我们希望它能在我们进行相应的操作后能移动,设置速度为5.0f,当有水平方向上的输入时,我们就将绑定的游戏对象移动对应的距离。

Unity Ball Game Move

运行后会发现问题,我们会将挡板移出视线外。因此在Camera上也要添加对应的脚本。这里我用了其他人造的轮子,可以实现跟踪小球。

Unity Ball Game Script

源码位于Github,下载方法:

   git clone https://github.com/Vayne-Lover/Unity.git