Dadurch wird die Bildkomponente zu Ihrem Gameobject:
newObject.AddComponent<Image>();
Weiteren Dinge haben für die Image
Komponente in getan werden, um zu zeigen:
.Create eine Leinwand. Dazu gehört das Erstellen des GameObject, das den Canvas-Bereich enthält und dann die Canvas-Komponente daran anfügt. Sie müssen auch andere wichtige UI-Komponenten wie CanvasScaler
und GraphicRaycaster
an die Canvas
anhängen.
.Create Ihre Image
Gameobject mit Ihrem new GameObject("ObjectName");
dann newObject.AddComponent<Image>();
rufen Bildkomponente zu diesem Gameobject zu befestigen.
.Machen Sie das Image
GameObject ein Kind der Canvas
.
Dies ist der gesamte Prozess eine Leinwand und ein Bild als das Kind zu schaffen:
void Start()
{
//Create Canvas
GameObject canvas = createCanvas(false);
//Create your Image GameObject
GameObject newObject = new GameObject("ObjectName");
//Make the GameObject child of the Canvas
newObject.transform.SetParent(canvas.transform);
//Add Image Component to it(This will add RectTransform as-well)
newObject.AddComponent<Image>();
//Center Image to screen
newObject.GetComponent<RectTransform>().anchoredPosition = Vector2.zero;
}
//Creates Hidden GameObject and attaches Canvas component to it
private GameObject createCanvas(bool hide)
{
//Create Canvas GameObject
GameObject tempCanvas = new GameObject("Canvas");
if (hide)
{
tempCanvas.hideFlags = HideFlags.HideAndDontSave;
}
//Create and Add Canvas Component
Canvas cnvs = tempCanvas.AddComponent<Canvas>();
cnvs.renderMode = RenderMode.ScreenSpaceOverlay;
cnvs.pixelPerfect = false;
//Set Cavas sorting order to be above other Canvas sorting order
cnvs.sortingOrder = 12;
cnvs.targetDisplay = 0;
addCanvasScaler(tempCanvas);
addGraphicsRaycaster(tempCanvas);
return tempCanvas;
}
//Adds CanvasScaler component to the Canvas GameObject
private void addCanvasScaler(GameObject parentaCanvas)
{
CanvasScaler cvsl = parentaCanvas.AddComponent<CanvasScaler>();
cvsl.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
cvsl.referenceResolution = new Vector2(800f, 600f);
cvsl.matchWidthOrHeight = 0.5f;
cvsl.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight;
cvsl.referencePixelsPerUnit = 100f;
}
//Adds GraphicRaycaster component to the Canvas GameObject
private void addGraphicsRaycaster(GameObject parentaCanvas)
{
GraphicRaycaster grcter = parentaCanvas.AddComponent<GraphicRaycaster>();
grcter.ignoreReversedGraphics = true;
grcter.blockingObjects = GraphicRaycaster.BlockingObjects.None;
}
'mit UnityEngine:
Oder einfach zeigen eine Textur, können Sie die Haupt-Textur auf das Material eines
MeshRenderer
außer Kraft setzen .UI' das habe ich vermisst! – David