Skip to content

Instantly share code, notes, and snippets.

@caramelchocolate
Created January 1, 2020 07:01
Show Gist options
  • Save caramelchocolate/115b0f21722629bda812e99b703ec467 to your computer and use it in GitHub Desktop.
Save caramelchocolate/115b0f21722629bda812e99b703ec467 to your computer and use it in GitHub Desktop.
Initialize Canvas
void Start() {
if (Camera.main != null) {
Camera.main.orthographicSize = ORTHOGRAPHIC_SIZE;
}
if (FindObjectOfType<EventSystem>() == null) {
var eventSystem = new GameObject("EventSystem", typeof(EventSystem));
eventSystem.AddComponent<StandaloneInputModule>();
}
this.canvasObject = new GameObject("CanvasUIRoot");
GameObject.DontDestroyOnLoad(canvasObject);
Canvas canvas = this.canvasObject.AddComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceCamera;
canvas.pixelPerfect = false;
canvas.worldCamera = Camera.main;
canvas.sortingOrder = 10;
canvas.targetDisplay = 0;
CanvasScaler canvasScaler = this.canvasObject.AddComponent<CanvasScaler>();
canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
canvasScaler.referenceResolution = new Vector2(1024, 768);
canvasScaler.matchWidthOrHeight = 1;
canvasScaler.referencePixelsPerUnit = 100;
this.canvasObject.AddComponent<GraphicRaycaster>();
Canvas prefab = Resources.Load<Canvas>("Prefabs/CanvasUI");
Canvas gameObjectCanvasUI = Instantiate(prefab) as Canvas;
gameObjectCanvasUI.name = "CanvasUI";
gameObjectCanvasUI.transform.SetParent(this.canvasObject.transform, false);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment