Unity 设置父对象位置等于其子位置

用户3277468

我有两个 3D 对象,最终它们将是不同大小和形状的 3D 模型,但我正在努力使底层功能正确。

一个是常规 Sphere,在位置 (0,-0.5,0) 处有一个名为 s1 的子游戏对象。

一个是按比例缩放 (0.3,0.3,0.3) 的圆柱体,在位置 (0,0.5,0) 的子游戏对象名为 c1。

我正在尝试移动对象,以便两个父对象在同一子对象位置对齐。

下面的代码将气缸位置直接移动到 s1 位置。我只是在计算矢量数学时遇到了麻烦,所以 c1 位置直接在 s1 位置上。我尝试了多种不同的加法、减法、除法来使它们对齐,但没有任何运气。任何帮助理解如何解决这个问题将不胜感激。

public GameObject sphere;
public GameObject cyclinder;

private GameObject s1;
private GameObject c1;

// Start is called before the first frame update
void Start()
{
    s1 = sphere.transform.Find("s1").gameObject;
    c1 = cyclinder.transform.Find("c1").gameObject;


    cyclinder.transform.position = s1.transform.position;
}
凯维尼库斯

虽然您的问题不是很清楚,但我认为您的意思是您试图以这样的方式定位圆柱体和球体,使它们的子对象(s1 和 c1)共享完全相同的世界位置。

我要遵循的步骤是:

  • 计算子对象与其父对象之间的世界空间偏移(通常这只是子对象的 localPosition,但由于您还应用了 localScale,因此可以通过使用世界位置手动计算偏移向量来考虑这一点)
  • 将父位置设置为新位置+上述偏移量

例如:

Vector3 finalPos = ... // Position I want both s1 and c1 to share

// Cylinder: world offset, moving from c1 to the parent object
Vector3 cylOffset = cylinder.transform.position - c1.transform.position;

// Position the cylinder, and apply the offset
cylinder.transform.position = finalPos + cylOffset;

// Sphere: world offset, moving from s1 to the parent object
Vector3 sphereOffset = sphere.transform.position - s1.transform.position;

// Position the sphere, and apply the offset
sphere.transform.position = finalPos + sphereOffset;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Unity中设置子变换相对于父变换的位置

来自分类Dev

Unity - 如何获取父游戏对象中心的位置

来自分类Dev

Unity 4.3-了解位置和屏幕分辨率,如何正确设置对象的位置?

来自分类Dev

Unity LineRenderer-无法设置位置

来自分类Dev

Unity 对象不跟随鼠标位置

来自分类Dev

unity mobile 控制位置

来自分类Dev

如何使用 C# 将多个游戏对象的位置设置为不同的随机位置?(Unity5.5)

来自分类Dev

unity2d 字符 y 位置等于鸟 y 位置

来自分类Dev

Ubuntu Unity启动图标位置

来自分类Dev

检测刚体位置 (Unity)

来自分类Dev

Unity 在世界位置的拖放

来自分类Dev

Unity/C# - 基于另一个对象手动设置对象的位置和旋转

来自分类Dev

Unity-将多个GameObject从其当前位置移动(随机播放)到新的目标位置

来自分类Dev

根据其在unity3d中的当前位置改变主摄像头的位置

来自分类Dev

朝着Unity 4.3中的位置移动2d对象

来自分类Dev

Unity 3D如何实例化对象位置

来自分类Dev

无法保存/加载对象的位置和旋转(Unity Engine)

来自分类Dev

未将Unity对象引用设置为对象unity的实例

来自分类Dev

具有触摸位置Android的Unity 2D对象位置

来自分类Dev

Unity3D:根据当前位置生成对象-放在相同位置的画布上

来自分类Dev

Unity3D获取CharacterController重新运行到其起始位置

来自分类Dev

JFrame与Ubuntu的位置错误(Unity吗?)

来自分类Dev

更新位置Unity3d

来自分类Dev

Unity GUI无法在正确的位置显示文本

来自分类Dev

Unity Touch位置差异始终为正

来自分类Dev

Unity Ridgidbody约束,冻结位置Y

来自分类Dev

引导Unity-组成根位置

来自分类Dev

Unity 将相机夹到相机 y 位置

来自分类Dev

Unity默认设置

Related 相关文章

热门标签

归档