例如,使用void Update连续调整其位置,如
first.transform.position = second.transform.position;
似乎效率很低,如果您不能真正生孩子,例如: 尝试将对象与文本UI对齐
答案 0 :(得分:0)
您可以将对象作为子项分配给first
GameObject
,这样当您移动主对象时它始终会相应移动。
second.transform.SetParent(first.transform);
请注意,在将second
对象添加为孩子时,您仍需要将SELECT i.cust_id,
oa.*
FROM input_table i
OUTER APPLY (SELECT pvt.*
FROM (SELECT month,
col = CONCAT('month', ROW_NUMBER() OVER (ORDER BY idx))
FROM (SELECT month,
idx,
to_preserve = MAX(IIF(month=0,0,1)) OVER (ORDER BY idx)
FROM (VALUES (1, month1),
(2, month2),
(3, month3),
(4, month4),
(5, month5) ) V(idx, month)) unpvt
WHERE to_preserve = 1) t
PIVOT (MAX(month) FOR col IN (month1, month2, month3, month4, month5)) pvt
) oa
对象居中一次。
答案 1 :(得分:0)
对于Text Elements,有两个选项可以让它们跟随世界中的特定GameObject:
World Space
的画布,如下所示:
我宁愿使用第二种解决方案,因为您不必创建适合您的简单组件的Canvas TextMesh Pro非常适合任何大小的字体,因为它使用Signed Distance Field Fonts。
但如果您希望文本始终面向播放器摄像头,则必须实施Billboard,这可能与初始脚本具有相同的影响
public class Billboard : MonoBehaviour {
private void Update() { transform.forward = Camera.main.transform.forward; }
}
实际上,还有第三种解决方案,但是我们购买了一个名为UnityConstraints的扩展程序,这是我一直使用的优秀扩展程序,它可用于创建任何类型的约束:广告牌,关注,查看等但是根据你的游戏,这可能是一个压倒性的解决方案。
答案 2 :(得分:0)
将要对齐的GameObject分组到一个普通GameObject下,并在检查器中添加一个 Horizontal Layout Group 组件。使用子对齐选项和间距可以按所需方式对齐对象。
参考:https://needoneapp.medium.com/how-to-align-game-objects-in-unity-735f93d5b74