0

所以我在我的统一项目中创建了一个平面作为我的楼层。我还为它分配了一个网格对撞机和一个盒子对撞机,并将其设置为凸面但不作为触发器。然后我创建了一个带有网格和球体碰撞器的项目,并将其设置为使用重力,因为我希望该项目落到地板上。但是当我开始游戏时,它仍然从地板上掉下来。我已经尝试在 YT、这里和其他地方找到解决方案,但他们给出的唯一想法是分配对撞机。这对我不起作用。我还尝试用材料填充对撞机,但无法分配任何东西。我也尝试编写代码,但这也无济于事。

有谁知道如何解决它?

public class IsGrounded : MonoBehaviour
{
Vector3 velocity;
public float gravity = -9.81f;
public Transform groundCheck;
public float groundDistance = 0.4f;
public LayerMask groundMask;
bool isGrounded;
// Start is called before the first frame update
void Start()
{
    
}

// Update is called once per frame
void Update()
{
    isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
    if (isGrounded && velocity.y < 0)
    {
        velocity.y = -2f;
    }
}
}
4

1 回答 1

0

所以最后,我设法从一个有用的 yt 视频中找到了解决方案。我需要改变的是停用地板和物品,触发事件。由于 Unity 不允许您在没有运动学和凸面的情况下使用,所以我只是点击了凸面,没有任何变化。现在,物品不会从飞机上掉下来(仍然会发生,比如当我把物品扔下时,它有时会穿过)。

于 2022-01-20T15:33:39.007 回答