Unity3d Unity中带有Rigibody2D.constraints的Bug

Unity3d Unity中带有Rigibody2D.constraints的Bug,unity3d,2d,Unity3d,2d,我创建了一个简单的游戏,我应该把刀扔到哪里。刀必须固定在板上。我这样做: void OnTriggerEnter2D(Collider2D other) { if (other.transform.tag == "Board") { rb.gravityScale = 0; transform.parent = Parent; rb.constraints = RigidbodyConstraints2D.FreezePo

我创建了一个简单的游戏,我应该把刀扔到哪里。刀必须固定在板上。我这样做:

void OnTriggerEnter2D(Collider2D other) {
    if (other.transform.tag == "Board") {
        rb.gravityScale = 0;
        transform.parent = Parent;
        rb.constraints = 
        RigidbodyConstraints2D.FreezePositionY;
}
有时,一旦对象附着到板上,它甚至会从层次结构中删除


我做了很多测试,当我不使用RigidbodyConstraints2D.FreezePositionY(FreezAll)时,一切都正常

在您的脚本中创建一个OnDestroy函数并检查“谁”正在调用以销毁您的刀子。thx,我在这个函数中添加了OnDestroy()实例化新刀子。这不是我的想法,关键应该是调试并查看刀子被销毁的原因。你是刀被删除了还是它在父对象中?刀被删除了,我从你那里了解了OnDestroy的功能。但为什么是删除我找不到。我认为,如果删除旧的,而不是创建一个带有参数的新的。这个工作很完美:)你试过调试这个函数吗??在堆栈中,可以从名为Destroy的位置进行检查。