Unity制作合成大西瓜

这是最终设计的页面,称为环境,其组成有:背景板,两边的墙(已隐藏),底板,水果生成的地方(CreatePoint)以及游戏结束的地方(deadline)(水果满到这个位置即结束)

创建两个脚本

一、gamemanager

这是gamemanager的一些变量声明,需要所有地方都可见可取的用public,其余只需自己可见用private,游戏对象(水果)用gameobject,位置(开始与结束)用transform,判断真假用bool;

第一个函数为创造水果,随机获得一个由0到2的数,作为出现的水果的level,用instantiate克隆prefab中的水果到场景中,把samplescene中的createpoint拖到最右边createpoint的框中,使水果在游戏中生成的位置与CreatePoint相同,然后用getcomponent使fruit得到go绑定的fruits脚本,fruit.gamemanager等于他本身,这样就能将场景中的gamemanager挂载到水果上,才能使水果出现在场景里,接着获取到go(水果)身上的刚体组件重力,一开始我们希望他悬浮所以重力系数设置为0,把circle1~6依次拖入fruits数组的框中,才能调用其出现在游戏中

游戏开始时我们先做一次创建水果

第二个函数为更新水果,先判断isclick为false时进行鼠标坐标的获取,vector3表示3维变量,由于我们用input获取的是鼠标相对于屏幕的坐标,而需要的是相对于游戏的坐标,所以用camera.main.screentoworldpoint转换成游戏坐标,后实现水果创建后固定在上方可左右移动的效果,先在游戏场景中用一个水果测量边缘x的坐标,我的x坐标大致为5.6,另一边也按这样测量,如果水果的x坐标大于边缘减去半径的大小,那么就等于达到边缘的长度,另一边也同理,由此来限制水果左右移动的范围,想要鼠标不乱动而是只左右移动,就new一个三维变量newpos把x轴的坐标传进来,y轴和z轴不变,在把newpos赋给curfruit的位置。接着用getmousebuttondown获取鼠标点击,=0时即点击了一次,获取到curfuits身上的刚体组件重力,希望他下落则将重力系数设置为1,后将isclick=true,防止水果下落后运动路径依旧随鼠标移动,用invoke使水果下落后1秒钟自动创建一次

第三个函数为水果的升级,碰撞后水果的level+1实现融合效果,后使其出现与创建水果相同

二、fruits

依旧是一些变量的声明

第一个函数为水果与水果之间碰撞发生的情况,当下落的水果与另一个水果没有碰撞时,我们return,当gamemanager为空或fruit.isUP==true时,还是return,如果下落的水果与碰撞到的水果level不同或是其中一个水果的level达到了最大,也是return,情况讨论完后,当下落的水果与另一个水果碰撞时,isup与另一个水果的isup变为true,再将fruit.isUP==true加入上面的if判定,这样另一个水果就不会进行升级,就只会出现一个升级的水果,接着摧毁本来的水果和本来的other水果,就达到了两个水果合成一个升级的水果的效果,然后调用gamemanager里面的fruitup函数对水果进行升级

第二个函数为水果与底板或是deadline之间碰撞发生的情况,水果第一次碰到底板,istrige变为true,return,直到水果第二次碰到deadline,游戏结束。

一些游戏界面的设计

在samplescene右键2D object->sprites->选择需要的图形(square等),在inspector中根据自身需求可进行形态及颜色的更换,在resources中可传入自己需要的图片,将其拖入sprite中即可更换创造图形的外型

为了不让水果被背景板挡住,我们要自行在sorting layer中添加一个front并使用

我们要将底板等加入刚体,将水果加入刚体,以此达到碰撞效果,水果还需要刚体,使其有重力效果

每个circle的level要从小到大更改为0~5,从而水果升级的效果

  • 27
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值