@NeoLight3

Object Reference not set to an instance of an object. Что делать?

Есть функция:
public static void CreatePNG(CommandArgs args)
        {
            try
            {
                GameObject _cam = new GameObject();
                var cam = UnityEngine.Object.Instantiate(_cam, new Vector3(args.sender.position.x + 10f, args.sender.position.y, args.sender.position.z), args.sender.rotation);
                ((GameObject)cam).camera.aspect = 1.0f;
                RenderTexture tempRT = new RenderTexture(512, 512, 24);
                ((GameObject)cam).camera.targetTexture = tempRT;
                ((GameObject)cam).camera.Render();
                RenderTexture.active = tempRT;
                Texture2D virtualPhoto = new Texture2D(512, 512, TextureFormat.RGB24, false);
                virtualPhoto.ReadPixels(new Rect(0, 0, 512, 512), 0, 0);
                RenderTexture.active = null;
                ((GameObject)cam).camera.targetTexture = null;
                byte[] bytes = virtualPhoto.EncodeToPNG();
                StreamWriter streamWriter = new StreamWriter("Unturned_Data/Managed/picture.png", true);
                streamWriter.Write(bytes);
                streamWriter.Close();
                Reference.Tell(args.sender.networkPlayer, "Successfully created Picture!");
                UnityEngine.Object.DestroyObject(cam);
            }
            catch (Exception err)
            {
                Reference.Tell(args.sender.networkPlayer, $"Err: {err.Message}");
            }
        }


При её выполнении возникает ошибка Object Reference not set to an instance of an object, в интернете искал решения - не нашел.
Где я допустил ошибку?
Что я делаю:
Я хочу в моей функции создать новый игровой объект в сцене Unity,
Который потом инстанциирую, а за тем пытаюсь зарендерить фото из камеры этого объекта.
Что я делаю не так ?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега C#
Кто хочет -ищет способ, кто не хочет -ищет причину
Думаю ошибка тут
((GameObject)cam).camera.aspect = 1.0f;
Вы создали пустой объект, а после обращаетесь к камере(?) на объекте. И конечно откуда ей там взяться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 сент. 2020, в 06:18
20000 руб./за проект
23 сент. 2020, в 06:11
2000 руб./за проект
23 сент. 2020, в 00:43
40000 руб./за проект