Unity/C#:如何在不增加空气阻力的情况下增加物品摩擦力?
我刚开始制作一个基于2d物理的游戏,但当我试图设置弹射器来检查一些功能时,我注意到弹射器开始滑落,但当我增大摩擦力时,它也增大了空气阻力,如何在不增加空气阻力的情况下增加摩擦力?在Unity中,只有两个值描述摩擦力。线性阻力和角度阻力Unity/C#:如何在不增加空气阻力的情况下增加物品摩擦力?,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我刚开始制作一个基于2d物理的游戏,但当我试图设置弹射器来检查一些功能时,我注意到弹射器开始滑落,但当我增大摩擦力时,它也增大了空气阻力,如何在不增加空气阻力的情况下增加摩擦力?在Unity中,只有两个值描述摩擦力。线性阻力和角度阻力 线性拖动-描述对象速度每滴答声减慢的速度 角度阻力-描述对象旋转每滴答声减慢的速度 我认为您需要一个小脚本来在不同的环境中实现不同的拖动,伪代码如下所示 if(in_the_catapult) { // Set the rigidbody to hig
- 线性拖动-描述对象速度每滴答声减慢的速度
- 角度阻力-描述对象旋转每滴答声减慢的速度
if(in_the_catapult)
{
// Set the rigidbody to high value to not slide off
rigidbody.drag = 100;
}
else if(touching_the_ground)
{
// Set the rigidbody to what the friction should be on the ground
rigidbody.drag = 2;
}
else if(in_the_air)
{
// Set the rigidbody to what the air resistant should be
rigidbody.drag = 0.1;
}
此代码应在更新中运行,以检查每一帧的状态是否已更改,或者如果条件已更改,则应在事件中运行此代码,因为您的子弹可能会多次从地面反弹。空气阻力是什么让您感到困扰?这不就是因为速度增加了摩擦力吗?因为它在空气中传播缓慢,不能像刚开始时弹射器的一小部分那样被发射出去,它就变成了一个不可移动的物体,所以弹射器停止了,弹丸没有发射出去,它只是从几像素高的地方漂浮下来。你试过玩吗刚体的
阻力
属性,或者角度阻力
如果它从弹射器中“滚出”?另外,您是如何设置弹射器和射弹各自的刚体的?也许弹射器的形状也是罪魁祸首?简而言之:你能帮我们重现你的问题吗?如果没有任何代码和细节,这个问题将很难回答,而且可能与堆栈溢出无关?请注意,您可能希望对弹射器使用摩擦力,而不是对射弹使用摩擦力,并使用两者的适当组合。如果您手动将物体放置在空中某个位置,是否确实存在摩擦力?可能是弹射器的摩擦力把它固定住了。在这种情况下,也许你可以在弹射器实际发射后立即切换物理材料来解决这个问题。