Ошибка "get_main is not allowed to be called from MonoBehaviour" в unity2d
Делал скрипт который создаёт картинку на канвасе, вот скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OpenWindow : MonoBehaviour {
[SerializeField] private GameObject win;
[SerializeField] private GameObject canvas;
private Vector3 cp = Camera.main.ScreenToWorldPoint(new Vector3(Camera.main.pixelWidth, Camera.main.pixelHeight, 0f));
private GameObject lastWin;
public void ImClicked() {
lastWin = Instantiate(win, cp/2f, Quaternion.identity);
lastWin.transform.parent = canvas.transform;
}
}
но выдаёт ошибку:
get_main is not allowed to be called from MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead. Called on MonoBehaviour 'OpenWindow' on game object 'Button'**
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Вынесите инициализацию полей в Start(). Об этом вам и написано в тексте ошибки: call it in Awake or Start instead.
private Vector3 cp;
void Start()
{
cp = Camera.main.ScreenToWorldPoint(new Vector3(Camera.main.pixelWidth, Camera.main.pixelHeight, 0f));
}