Charactor controller

来源:互联网 发布:河北工龄工资算法 编辑:程序博客网 时间:2024/06/07 04:03

角色控制器主要用于对第三人称或第一人称游戏主角控制,并不是刚体的物理效果,添加角色控制器的方法为。

 

1.选中要控制的角色对象,依次打开菜单栏中的component->phyics->character controller选项,即可为角色添加角色控制器组件

2.character controller组件属性面板

slope Limit:坡度限制,用于设置所控制的角色对象只能爬上小于或等于该参数值得斜坡

step offset:台阶高度,用于设置所控制的角色对象可以迈上的最高台阶的高度

skin width:皮肤厚度,参数决定了两个碰撞体可以相互参入的深度,较大的参数值会产生抖动的现象,较小的参数值会导致所控制的游戏对象被卡住,较为合理的设定是,该参数值为radius值得10%

Min Move distance:最小移动距离,如果所控制的角色对象移动的距离小于该值,则游戏对象将不会移动这可以避免抖动,大多数情况下将该值设为0.

center:中心参数决定了胶囊体碰撞体在世界坐标中的位置,并不影响所控制的角色对象的中心坐标

radius:半径,胶囊体碰撞的长度半径,同时该项也决定了碰撞体的宽度

height:高度,用于设置所控制的角色对象的胶囊体碰撞体的高度,改变此值将会使碰撞体沿着Y轴的正负连个方向的伸缩

 

角色控制器不会对施加给他的作用力做出反应,也不会作用于其他的刚体如果想让角色控制器能够作用于其他的刚体对象,可以通过脚本【onControllerConlliderHit】函数在与其他碰撞对象上使用一个作用力,另外,如果想让角色控制器受物理效果影响,那就最好用刚体来代替

 

可以修改角色控制器的height和radius参数来适配角色模型的网格,对于人性的角色一般推荐为2米左右,如果控制器的中心点不在任务中心,可修改胶囊的center参数对其中信点进行调整,Step offset参数也会对此产生影响,所以一般保证此值在0.1到0.4之间(以2米角色人物为基础),同时SlopeLimit参数值不要设定过小,通常设为90最好,此外,介于胶囊体形状的缘故,人物角色无法爬上墙

 

角色控制器的skinwidth时非常重要的属性,因此必须要正确的设定,如果角色卡住了通常是由于skin width 值设为大小而导致的,该值可使其他的对象轻微的穿过角色的控制器,并且可以避免抖动防止角色卡住,skin width最好设置为大于0.01切大于radius x10%的值,Min Move Distance的值推荐设为0

 

如果角色频繁的被卡住,尝试调整skin width的值,通过写脚本,角色控制器也通过物理效果来影响其他的对象

角色控制器无法通过物理效果被其他游戏对象所影响


0 0
原创粉丝点击