ruby与金属盒的遮挡效果实现
(1)就视觉感知而言,ruby和金属盒子相遇时,ruby的y值大于金属盒子则ruby被遮挡,ruby的y值小于金属盒子的时候金属盒子被遮挡。则按下列步骤设置。
Edit->project settings->graphics
渲染模式按下图更改。
(2)由于ruby和金属盒子的轴心点位置设为正中心,有时ruby会提前被渲染出来,如下图的效果一样。
下面更改轴心点位置。
对于ruby或者金属盒子对象,按照下图修改属性。
在Sprites里找到ruby和金属盒子的图集,按下图修改设置。
对于多图集构成的图片,在Sprite Editor中修改每张图片的轴心点。移动蓝色点或者在右下角进行参数设置。
遮挡效果完成。
预制体的制作
在Art文件夹下新建Prefabs文件夹,把金属盒对象拖拽进Prefabs里。预制体制作完成。
把文件夹下的预制体拖拽到金属盒对象所在的场景下。生成预制体的克隆体。
点击金属盒的小箭头可以进入预制体属性设置界面。
构建预制体是实现多个同类物体快速修改某一属性的方法。
实体之间的碰撞检测
金属盒子是有实体的,ruby不能直接穿过。下面是ruby碰撞金属盒子效果设置过程。
(1)为金属盒子和ruby添加Box Collider 2D组件,为Ruby添加Rigidbody 2D组件,并且将重力系数设置为0。一般在移动的对象上添加刚体。unity为了提升性能,会让长期不运动的刚体休眠。
(2)冻结ruby在y轴上的旋转。
(3)调整碰撞体大小来符合现实世界碰撞效果。
(4)设置Rigid Body控制Rudy移动,防止Ruby碰撞时产生的抖动。代码调整如下。
修改ruby移动方式。
由于玩家输入控制命令Ruby移动,而刚体和禁止的BoxCollider之间禁止移动,而产生Ruby移动的抖动现象。所以使用刚体方式控制Ruby移动。