我们如何在统一 3D 中一起移动两个?
Posted
技术标签:
【中文标题】我们如何在统一 3D 中一起移动两个?【英文标题】:How we can move two together in unity 3D? 【发布时间】:2021-05-22 03:28:22 【问题描述】:实际上我想将两个子对象相互连接,这样当一个对象的大小增加时,两个对象都应该一起移动并改变它的位置。我想在预制件中做到这一点有可能吗?
这是层次结构截图:
基本上我想增加玻璃的大小(side1_screen1 的子对象),但随着玻璃,我的支持(子对象)的大小也在增加。
但是当我单独增加玻璃尺寸时,我的支撑位置不会改变,所以当玻璃尺寸增加时可以使用的任何方法,我的支撑尺寸都不应该增加。
任何方法都会受到赞赏。提前致谢。
【问题讨论】:
【参考方案1】:我不知道这是否是您所要求的,但您可以通过将多个子对象作为父对象简单地“连接”到同一个对象。在这个例子中,我简单地创建了两个子对象和一个空的 GameObject 作为容器。每当您缩放、旋转或移动容器时,子对象都会做同样的事情。
在层次结构中,如果不将其中一个作为父对象,您就无法将多个子对象“连接”到彼此。
您可以尝试的另一种(快速而肮脏的)方法是创建一个引用两个游戏对象的变换组件的脚本,然后根据另一个设置其中一个。
你可以把它放在你的 Update() 方法中:
firstChild.transform.position = secondChild.transform.position + Vector3 offsetValue (otherwise they will be in the same position)
firstChild.transform.rotation = secondChild.transform.rotation
firstChild.transform.localScale = secondChild.transform.localScale
在您创建脚本并根据自己的喜好引用所有内容后,您可以简单地将父对象拖到您的项目文件夹之一中,使其成为预制件。
【讨论】:
以上是关于我们如何在统一 3D 中一起移动两个?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 创建一个对象以统一在两个位置之间移动,为啥我的代码不起作用?