行走斜坡
游戏中的地面并非都是平坦的,有时需要添加一些斜坡。主角如何才能自然地行走在这些斜坡上呢?实现方法其实很简单,只要加上一小段代码就可以了。



if(c_move(myplayer,vector(0,0,-0.5),nullvector,IGNORE_PASSABLE)){;}//行走斜坡

else

{myplayer.z+=.1;}





c_move(myplayer,vector(0,0,-0.5),nullvector,IGNORE_PASSABLE这一句是让角色在如果底下没有地板的情况下往下方移动。c_move有返回值,如果遇到障碍物而不能移动,则返回0,否则返回非零的数。

整段代码的原理就是,当角色脚下没有地板的时候则让角色往下放移动0.5的距离,当脚下有地板的时候则向上移动0.1的距离。在下斜坡时,由于角色往前走后前方没有地板,于是角色往下方移动,形成走下斜坡的姿态。在上斜坡时,由于脚下有地板而角色向上移动,使得角色可以向前走。

整段代码其实是在动态平衡中实现的,角色一上一下,最终形成看似站立的姿态。





如果出现角色陷于地面或者是升起的情况,只要在模型编辑器中调整角色相对于原点的位置即可解决。下图是角色陷于地面的情况。





锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛