1,首先就是给人物加上碰撞器,人物一般用capsule collider胶囊状的,网格碰撞器在人物少的时候也可以用。
2,单纯一个capsule可能会让人物在稍微有点斜坡的地方都会倒下,所以可以用capsule 加 box 组合,box做基底(相当于搭房子一样)上图
3,然后这样可以简单的解决一些地形,接下来是实现在斜坡上只在y轴上移动,而不会倒下(就是平常玩的fps游戏上斜坡人物视角角度不变)
效果图
下面展示一些 内联代码片
。
// 这句写在start里面
rg=GetComponent<Rigidbody>();
// 这两个方法写在与Update同一级的地方
void OnCollisionStay(Collision other)
{
if(other.gameObject.tag=="ground")
{
rg.useGravity=false;
}
}
void OnCollisionExit(Collision other)
{
rg.useGravity=true;
rg.velocity=new Vector3(0,rg.velocity.y,0);//这样处理是为了一旦悬空可以使得物体在y轴以外的方向禁止
}
//这两个方法一次知道怎么用了,就可以用到所有类似的控制脚本里面