我在淘宝上,买了一点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