在 Unity 中仅使用 Collider 参考编辑 Gameobject

edit Gamobject with just Collider reference in Unity

我想捡起一只绵羊,通过将它作为一个空游戏对象的父级,将它移动到玩家的头上。这一切都很好,除了绵羊没有移动到头部而是在养育时保持在他的位置。有什么方法可以仅通过对撞机参考来改变绵羊的位置吗?对不起,如果这是一个菜鸟问题,我是初学者,希望你能帮助我!提前致谢!

if (Input.GetKey(KeyCode.Space)) {
            if (targetTime <= 0.0f)
            {
                targetTime = 2f;
                if (inhand == true)
                {
                    InHand.transform.SetParent(null);
                    inhand = false;
                    Debug.Log("Abgelegt");
                }
                else
                {
                    Collider2D[] sheepsinrange = Physics2D.OverlapCircleAll(attackPos.position, attackRange, whatIsEnemies);
                    if (sheepsinrange.Length > 0)
                    {
                        InHand = sheepsinrange[0];
                        InHand.transform.SetParent(sheepPos);
                        inhand = true;
                        Debug.Log(sheepsinrange + " aufgenommen");
                    }
                }
            }
        }
    }

非常简单,一旦你设置了父级,你只需要重置它的本地位置。

您可以手动设置 InHand.transform.localPosition = vector3.zero; 或者因为您使用 SetParent() 您可以使用第二个参数 -> SetParent(Transform parent, bool worldPositionStays) 默认情况下它是 true 所以它保持在相同的位置。所以你想要:

InHand.transform.SetParent(sheepPos, false);