我在淘宝上,买了一点unity的学习素材,

摸索着,做一些demo, 这里分享一下试验后可行,并且效果还可以的例子。




人物做不同动作的时候,碰撞范围会有一定的变化,


例如,某些地方,在地面翻滚可以躲过,而正面奔跑就可能会碰到,


可以这样来切换,


//碰撞范围 开始-----------------------------------------------------------------------


public CharacterController ownCollision;



//奔跑时的碰撞范围

private Vector3 runCollisionPosition = new Vector3(0,1.25f,0.4f);

private float    runCollisionRadius = 0.7f;

private float    runCollisionHeight = 2.5f;


private void changeToRunCollision()

{

ownCollision.center = runCollisionPosition;

ownCollision.radius = runCollisionRadius;

ownCollision.height = runCollisionHeight;

}


//起跳时的碰撞范围

private Vector3 jumpCollisionPosition = new Vector3(0,2,0);

private float    jumpCollisionRadius = 0.5f;

private float    jumpCollisionHeight = 2.0f;


private void changeToJumpCollision()

{

ownCollision.center = jumpCollisionPosition;

ownCollision.radius = jumpCollisionRadius;

ownCollision.height = jumpCollisionHeight;

}


//下滚是的碰撞范围

private Vector3   rollCollisionPosition = new Vector3(0,0.8f,-1);

private float      rollCollisionRadius = 0.8f;

private float      rollCollisionHeight = 1.4f;


private void changeToRollCollision()

{

ownCollision.center = rollCollisionPosition;

ownCollision.radius = rollCollisionRadius;

ownCollision.height = rollCollisionHeight;

}


//碰撞范围 结束-----------------------------------------------------------------------


实际游戏开发的时候,


调整具体数值的窍门就是多测试,


尽量调整到一个看上去效果还算是比较自然的程度。


————————————————

版权声明:本文为CSDN博主「JAROD姜赫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/JAROD_JIANGHE/article/details/52421949