Страница 1 из 1

Настройки экрана, как сохранить и прочитать?

СообщениеДобавлено: 10 июн 2009, 00:46
Baisangur
Как я могу узнать, сохранить, а патом прочитать настройки экрана(ширина, высота, глубина цвета)? Я не пойму как такое реализовать если, все файлы в юнити при компиляции архивируются в какой то родной, для юнити, формат. Да и каким образом прочитать такой файл, с настройками, если, как я понял, скрипт начинает выполнятся только при условии что он повешан на GameObject, но GO создается уже в 3Д сцене. :-?

Re: Настройки экрана, как сохранить и прочитать?

СообщениеДобавлено: 10 июн 2009, 01:57
Baisangur
Кажется разобрался сам :D

Написал такой вот скрипт(вдруг кому понадобится):
Код: Выделить всё
using UnityEngine;
using System;
using System.Collections;
using System.IO;

/// <summary>
/// Чтение файла настроек и смена разрешения.
/// </summary>
public class ResolutionChanger : MonoBehaviour
{
    //Имя файла с настройками.
    public string fileName = "";

    //Ширина экрана
    private int screenWidth;

    //Высота экрана
    private int screenHeight;

    //Полный экран?
    private bool screenFull=false;


    /// <summary>
    /// Выполняется один раз при инициализации объекта.
    /// </summary>
    void Start()
    {
        //Создаем поток чтения из файла в отдельной области видимости.
        using (StreamReader fileStream = File.OpenText(Path.GetFullPath(fileName)))
        {

            //Читаем данные
            string fileLine = "";
            while ((fileLine = fileStream.ReadLine()) != null)
            {
                string option = fileLine.Substring(0, fileLine.IndexOf("="));
                switch (option)
                {
                    case "screen_width":
                        screenWidth = Convert.ToInt32(fileLine.Substring(fileLine.IndexOf("=") + 1));
                        break;

                    case "screen_height":
                        screenHeight = Convert.ToInt32(fileLine.Substring(fileLine.IndexOf("=") + 1));
                        break;

                    case "screen_full":
                        string fullscreen = fileLine.Substring(fileLine.IndexOf("=") + 1);
                        if (fullscreen == "true")
                            screenFull = true;
                        break;
                }

            }

            //Освобождаем поток.
            fileStream.Close();
        }

        //Устанавливаем разрешение
        Screen.SetResolution(screenWidth, screenHeight, screenFull);
    }
}


Теперь вопрос в другом! Что для каждой сцены делать новый GO с этим скриптом? Нельзя ли как-то некоторые скрипты запустить при старте приложения без вешания на GameObject - ы ?

Re: Настройки экрана, как сохранить и прочитать?

СообщениеДобавлено: 10 июн 2009, 10:37
Neodrop
Запустить нельзя, а вот сохранить из сцены в сцену можно. Что ещё раз говорит о том, что вы упрямо игнорируете советы пройти 3D Platfotmer Tutorial :-?
DontDestroyOnLoad

Re: Настройки экрана, как сохранить и прочитать?

СообщениеДобавлено: 10 июн 2009, 15:31
Baisangur
Эх :)
Деваться некуда, прийдется его пройти.