不太确定该如何措辞,但可以说您是个球,正在蹦蹦跳跳地走动。它的表面很平整,所以一切都很好。
现在引入一些45度的坡道。您跌倒了一条直线并从其反弹。此刻,无论您多快击中它,以多大角度或多快的速度行驶,都可以立即向后移,因为按一定角度它会比按动的动力更难。就像是一个小的渐进动量,直到达到0速度,然后您才能正常移动。
if (playerLeft)
{
float xVelocity = (playerBody.velocity.x > 0) ? playerBody.velocity.x - playerSpeed : -playerSpeed;
playerBody.velocity = new Vector3(xVelocity, playerBody.velocity.y, 0);
}
if (playerRight)
{
float xVelocity = (playerBody.velocity.x < 0) ? playerBody.velocity.x + playerSpeed : playerSpeed;
playerBody.velocity = new Vector3(xVelocity, playerBody.velocity.y, 0);
}
最初,每个速度我只有1行,无论速度是-1还是-50,我都会将x速度设置为等于播放器速度。您可以想象它看起来多么不现实。
我尝试添加上面的速度。但是因为它的最小值仅比0低6左右。它将在2或3帧内达到其最大速度,而这是不够渐进的。
答案 0 :(得分:2)
这是通过Physic Material完成的。
1 。首先,通过转到资产--->创建--->物理材料来创建物理材料。
2 。将物理材质拖到对象对撞机的“材质”插槽中。
3 。下面是选中的“物理材料”的样子:
您可以选择物理材料并在编辑器中修改其设置,也可以通过脚本进行设置:
SphereCollider yourCollider = ...;
yourCollider.material.dynamicFriction = 0.6f;
yourCollider.material.staticFriction = 0.6f;
yourCollider.material.bounciness = 0.0f;
这使您可以在运行时修改对象的弹性和摩擦力。建议您观看this视频以了解基本设置。