我开始慢慢掌握 Unity(当然是基于 YouTube 的指南)。我正在用立方体制作一个简单的拼图。目标是拉出红色立方体。
Rigidbody所有立方体都用Box Collider零摩擦材料悬挂。
问题在于,当一种类型的三个或更多立方体被推入另一种类型时,即使没有初步加速,它们也只是被推过它。此外,如果立方体少于三个,则一切或多或少都能正常工作,尽管仍然尝试通过)

看起来很有趣,但他们不应该这样做。我尝试改变 yRigidbody Interpolate和Collision Detection,没有效果。
我用谷歌搜索,但没有找到答案(很可能我谷歌搜索得不好)
另一个额外的问题是:如何确保立方体在移动时不会卡在角落?在舞台上,我似乎把一切都安排好了Freeze Rotation,Freeze Position但他们还是撞到了一起。到目前为止,我刚刚将预制件的碰撞器从 1 减少到 0.99,但它工作不可靠,而且看起来很歪。
我附上了脚本,它对于所有多维数据集都是相同的:
using System;
using UnityEngine;
public class CubeMovement : MonoBehaviour
{
[SerializeField] KeyCode moveForwardKey;
[SerializeField] KeyCode moveBackKey;
[SerializeField] Vector3 moveDirection;
private AudioSource audioSource;
private Rigidbody rb;
public static event Action OnTrigger;
void Start()
{
audioSource = GetComponent<AudioSource>();
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
if (Input.GetKey(moveForwardKey))
{
rb.velocity += moveDirection;
}
if (Input.GetKey(moveBackKey))
{
rb.velocity -= moveDirection;
}
}
private void OnTriggerEnter(Collider other)
{
if(this.CompareTag("Player") && other.CompareTag("Finish"))
{
if (OnTrigger != null)
{
OnTrigger.Invoke();
}
}
}
private void OnCollisionEnter(Collision collision)
{
audioSource.Play();
}
}

