EditorGUILayout.BeginHorizontal();
allChildren[i] = EditorGUILayout.ObjectField(allChildren[i], typeof(Transform), true) as Transform;
EditorGUILayout.LabelField(names[i]);
EditorGUILayout.EndHorizontal();
使用 Begin/End Horizo??ntal 使標簽位于物件域的右側。
但現在我希望每個物件域和它附近的標簽都與中心對齊。因此,每個 objectfield 和 labelfield 都將位于它們所在行的中心。
現在它們都與左側對齊。
uj5u.com熱心網友回復:
您可以FlexibleSpace
在元素之間使用來填充元素未占用的空間。
EditorGUILayout.BeginHorizontal();
{
GUILayout.FlexibleSpace(); // Fill Space Beginning
allChildren[i] = EditorGUILayout.ObjectField(allChildren[i], typeof(Transform), true) as Transform;
GUILayout.FlexibleSpace(); // Fill Space Middle
GUILayout.Label(names[i]);
GUILayout.FlexibleSpace(); // Fill Space End
}
EditorGUILayout.EndHorizontal();
它似乎不適用于EditorGUILayout.LabelField
,替換為上面使用GUILayout.Label
。
如果您希望右半邊的標簽和左半邊的物件欄位(完全均勻),那么您需要設定每個的顯式大小(兩者都相等)以使居中正常作業。
您使用的所有元素都具有params GUILayoutOption[]
指定元素寬度的方式。例如。
GUILayout.Label(names[i], GUILayout.Width(150));
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/477587.html
上一篇:檢測2DCollider是否從Unity2D中的其他腳本觸摸滑鼠指標
下一篇:復制組件的正確方法是什么?