如何在Unity3D中动态地将游戏对象居中于线条渲染器和空游戏对象之间?
我正在通过服务器动态生成一个如何在Unity3D中动态地将游戏对象居中于线条渲染器和空游戏对象之间?,unity3d,centering,Unity3d,Centering,我正在通过服务器动态生成一个playerController(每次有人连接时)。我的问题是,使用EmptyGameObject和LineRenderer元素作为参照,使其能够在X轴上居中 这是它的样子 每次这两个元素中的任何一个移动时,我都需要矩形来更新它的位置,因此它总是在它们之间以X为中心。我不确定我是否正确理解您的问题,但我假设要获得正确的X值,您需要这样做: float targetXposition = ((lineStartPoint.x + lineEndPoint.x
playerController
(每次有人连接时)。我的问题是,使用EmptyGameObject
和LineRenderer
元素作为参照,使其能够在X轴上居中
这是它的样子
每次这两个元素中的任何一个移动时,我都需要矩形来更新它的位置,因此它总是在它们之间以X为中心。我不确定我是否正确理解您的问题,但我假设要获得正确的X值,您需要这样做:
float targetXposition =
((lineStartPoint.x + lineEndPoint.x) / 2f + emptyGameObject.position.x) / 2f;
然后像这样对矩形应用新的X位置
Vector3 position = transform.position
transform.position = new Vector3(targetXposition, position.y, position.z);
另外,不要忘记获取LineRenderer
起点和终点的新值 。谢谢你的回复。这是你的意思吗?不工作……不太好。您的线(由LineRenderer组件绘制)与连接LineRenderer的gameObject不在同一位置。在代码中的某个地方,您可以调用lineRenderer.SetPosition(i,position)来设置线条的起点和终点。所以你们还需要把这些点传递给你们的矩形对象,这样他就可以知道你们的线在哪里,而不是线的游戏对象。。第22行出现错误:意外的符号“'),应为“;”。这可能是因为我抓住“左”锚的方式吗?。在同一行中仍然存在相同的错误..:我遗漏了什么?哦,我们在第23行的末尾有一个多余的“)”。对不起,我的错。