如何在 Unity 中镜像游戏对象的移动?

How can I mirror a gameobject movement in Unity?

我有两个游戏对象,我希望它们像图片中一样放在屁股上,但我希望它们一起移动和旋转,这样它们就会一直这样放置。我正在控制黑色物体,所以我只是使用 transform.rotation = Quaternion.Euler(0, 0, player.transform.eulerAngles.z + 180); 来获得正确的旋转,但我无法获得正确的位置。这是我希望如何放置它们的草图。

当我朝一个方向移动我的黑色物体时,两个游戏物体没有保持连接。这是问题的表示。

这里有我的原稿和照片: 我用来移动 ai 的脚本:

transform.position = player.transform.position + new Vector3(0, player.transform.localScale.y + transform.localScale.y - 1, 0); transform.rotation = Quaternion.Euler(0, 0, player.transform.eulerAngles.z + 180); transform.parent = player.transform;

检查器中的确切照片:

这就是我希望它们始终放置的方式:https://bugguide.net/images/cache/SL2/ZZL/SL2ZZLPZMLOH6HHRUHRREHVH7HVHZLWZLL6Z7H6Z8H5Z7HEZ5LEZ5H8ZSLAHRL2Z4LBZ7LAZILAZXLGZKL2ZMHAHMH.jpg

[更新] 我使用了@Ali Kanat 的回答,我已经完成一半了: 正如您在图片中看到的那样,这两个错误现在一个在另一个之上,但它们正在按应有的方式一起移动。

您可以将红色对象(或您拥有的任何其他对象)作为黑色对象的子对象并旋转黑色对象。这样您就可以保留几何图形,而不必修改其他对象的transform组件。

在评论之后我假设大 lady bug 是 Player。要以编程方式实现您想要的可以是这样的:

//forward, up or right depends on which direction is the front of your player
transform.position = player.transform.position + ((-player.transform.forward) * (player.transform.localScale.y
        + transform.localScale.y)/2);
transform.forward = (-player.transform.forward);

因为你要实现的是找到Player后方方向(PlayersizeY + enemySizeY)远的位置。无论您的玩家的方向是什么,这都会起作用。