使用錨預設定位UI元素當我們在UI中定位UI元素時,我們從錨預設中修復了位置,以便將其位置正確放置在畫布上。通過代碼
我們選擇上,中,下,拉伸和藍色圓點。
如果我在C#代碼中創建UI元素,我該怎麼做同樣的事情?
我做
Texture2D textureWhite = new Texture2D(1, 1);
textureWhite.SetPixel(0, 0, Color.white);
textureWhite.Apply();
我怎麼能一起解決的左上角用藍色的點?
使用錨預設定位UI元素當我們在UI中定位UI元素時,我們從錨預設中修復了位置,以便將其位置正確放置在畫布上。通過代碼
我們選擇上,中,下,拉伸和藍色圓點。
如果我在C#代碼中創建UI元素,我該怎麼做同樣的事情?
我做
Texture2D textureWhite = new Texture2D(1, 1);
textureWhite.SetPixel(0, 0, Color.white);
textureWhite.Apply();
我怎麼能一起解決的左上角用藍色的點?
錨(最小,最大)值和樞軸點值UI對象的RectTransform
是確定UI藍色點位於何處的因素。
如果您按住shift鍵並單擊每個預設,您將在下面的圖像中圈選的屬性發生變化。然後您可以複製每個變量並將其放入代碼中。
這些屬性從腳本經由RectTransform.anchorMin
,RectTransform.anchorMax
和RectTransform.pivot
控制。
不完全知道什麼是Texture2D
代碼在你的問題已經做這一點,但下面的函數來設置每個預設:
//------------Top-------------------
void topLeft(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(0, 1);
uitransform.anchorMax = new Vector2(0, 1);
uitransform.pivot = new Vector2(0, 1);
}
void topMiddle(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(0.5f, 1);
uitransform.anchorMax = new Vector2(0.5f, 1);
uitransform.pivot = new Vector2(0.5f, 1);
}
void topRight(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(1, 1);
uitransform.anchorMax = new Vector2(1, 1);
uitransform.pivot = new Vector2(1, 1);
}
//------------Middle-------------------
void middleLeft(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(0, 0.5f);
uitransform.anchorMax = new Vector2(0, 0.5f);
uitransform.pivot = new Vector2(0, 0.5f);
}
void middle(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(0.5f, 0.5f);
uitransform.anchorMax = new Vector2(0.5f, 0.5f);
uitransform.pivot = new Vector2(0.5f, 0.5f);
}
void middleRight(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(1, 0.5f);
uitransform.anchorMax = new Vector2(1, 0.5f);
uitransform.pivot = new Vector2(1, 0.5f);
}
//------------Bottom-------------------
void bottomLeft(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(0, 0);
uitransform.anchorMax = new Vector2(0, 0);
uitransform.pivot = new Vector2(0, 0);
}
void bottomMiddle(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(0.5f, 0);
uitransform.anchorMax = new Vector2(0.5f, 0);
uitransform.pivot = new Vector2(0.5f, 0);
}
void bottomRight(GameObject uiObject)
{
RectTransform uitransform = uiObject.GetComponent<RectTransform>();
uitransform.anchorMin = new Vector2(1, 0);
uitransform.anchorMax = new Vector2(1, 0);
uitransform.pivot = new Vector2(1, 0);
}
你可以用這些來控制錨預設:在這個
http://docs.unity3d.com/ScriptReference/RectTransform-anchorMin.htmlhttp://docs.unity3d.com/ScriptReference/RectTransform-anchorMax.htmlhttp://docs.unity3d.com/ScriptReference/RectTransform-pivot.html
尋找更多的細節:http://answers.unity3d.com/questions/1007886/how-to-set-the-new-unity-ui-rect-transform-anchor.html
謝謝。有用。 – batuman