编辑Gamobject,仅在Unity中具有Collider引用

问题描述 投票:0回答:1

我想捡起一只绵羊并通过将其作为一个空的游戏对象来将其移动到玩家的头部。一切正常,除了绵羊没有移动到头部,而是在育儿时保持在原位。有什么方法可以通过对撞机参考来改变绵羊的位置?抱歉,这是一个菜鸟问题,我是初学者,希望您能帮助我!预先感谢!

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");
                    }
                }
            }
        }
    }
c# unity3d gameobject
1个回答
0
投票

非常简单,设置好父代后,只需重置其本地位置即可。

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

InHand.transform.SetParent(sheepPos,false);

© www.soinside.com 2019 - 2024. All rights reserved.