|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
using System;
|
|
|
|
using System.IO;
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
public enum Frame
|
|
|
|
{
|
|
|
|
低配置 = 0,
|
|
|
|
中配置 = 1,
|
|
|
|
高配置 = 2,
|
|
|
|
完美画质 = 3
|
|
|
|
}
|
|
|
|
[Serializable]
|
|
|
|
public class System_Setting
|
|
|
|
{
|
|
|
|
public int resolutionX;
|
|
|
|
public int resolutionY;
|
|
|
|
public bool isFullScreen;
|
|
|
|
public float bgmValue;
|
|
|
|
public float seValue;
|
|
|
|
public bool isMuto;
|
|
|
|
public Frame frameSelect;
|
|
|
|
}
|
|
|
|
public class SystemSettig : MonoBehaviour
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// 分辨率width
|
|
|
|
/// </summary>
|
|
|
|
public static int ResolutionX;
|
|
|
|
/// <summary>
|
|
|
|
/// 分辨率height
|
|
|
|
/// </summary>
|
|
|
|
public static int ResolutionY;
|
|
|
|
/// <summary>
|
|
|
|
/// 是否全屏
|
|
|
|
/// </summary>
|
|
|
|
public static bool IsFullScreen;
|
|
|
|
/// <summary>
|
|
|
|
/// 背景音乐
|
|
|
|
/// </summary>
|
|
|
|
public static float BgmValue;
|
|
|
|
/// <summary>
|
|
|
|
/// 特效音乐
|
|
|
|
/// </summary>
|
|
|
|
public static float SEValue;
|
|
|
|
/// <summary>
|
|
|
|
/// 是否静音
|
|
|
|
/// </summary>
|
|
|
|
public static bool IsMute;
|
|
|
|
/// <summary>
|
|
|
|
/// 画质设置
|
|
|
|
/// </summary>
|
|
|
|
public static Frame FrameSelect;
|
|
|
|
|
|
|
|
public const int DefultResolutionX = 1366;
|
|
|
|
public const int DefultResolutionY = 768;
|
|
|
|
public const bool DefulteIsFullScreen = false;
|
|
|
|
public const float DefultBgmValue = 0.5f;
|
|
|
|
public const float DefultSEValue = 0.5f;
|
|
|
|
public const bool DefultIsMute = false;
|
|
|
|
public const Frame DefultFrameSelect = Frame.完美画质;
|
|
|
|
|
|
|
|
public static SystemSettig instance = null;
|
|
|
|
|
|
|
|
public static string Hinttext="";
|
|
|
|
string path;
|
|
|
|
void Awake()
|
|
|
|
{
|
|
|
|
System_Setting load = new System_Setting();
|
|
|
|
path = Application.streamingAssetsPath + "/System.json";
|
|
|
|
// Debug.Log(Application.streamingAssetsPath);
|
|
|
|
//Debug.Log(path);
|
|
|
|
load = LoadFromFile();
|
|
|
|
if (load==null)
|
|
|
|
{
|
|
|
|
load = DefuletSetting();
|
|
|
|
}
|
|
|
|
//设置画质与分辨率
|
|
|
|
SystemSettig.ShowAndFrameSetfunction(load);
|
|
|
|
//设置声音
|
|
|
|
SystemSettig.ResolutionX = load.resolutionX;
|
|
|
|
ResolutionY = load.resolutionY;
|
|
|
|
IsFullScreen = load.isFullScreen;
|
|
|
|
IsMute = load.isMuto;
|
|
|
|
BgmValue = load.bgmValue;
|
|
|
|
SEValue = load.seValue;
|
|
|
|
FrameSelect = load.frameSelect;
|
|
|
|
SystemSettig.SoundSetFunction();
|
|
|
|
|
|
|
|
}
|
|
|
|
public static void RessetToDefult()
|
|
|
|
{
|
|
|
|
ResolutionX = DefultResolutionX;
|
|
|
|
ResolutionY = DefultResolutionY;
|
|
|
|
IsFullScreen = DefulteIsFullScreen;
|
|
|
|
BgmValue = DefultBgmValue;
|
|
|
|
SEValue = DefultSEValue;
|
|
|
|
IsMute = DefultIsMute;
|
|
|
|
FrameSelect = DefultFrameSelect;
|
|
|
|
Hinttext = "";
|
|
|
|
}
|
|
|
|
|
|
|
|
// Use this for initialization
|
|
|
|
void Start()
|
|
|
|
{
|
|
|
|
if (instance == null)
|
|
|
|
{
|
|
|
|
instance = this;
|
|
|
|
}
|
|
|
|
|
|
|
|
//DontDestroyOnLoad(gameObject);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// 设置显示和画质
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="sys"></param>
|
|
|
|
public static void ShowAndFrameSetfunction(System_Setting sys)
|
|
|
|
{
|
|
|
|
//显示设置
|
|
|
|
if (sys.isFullScreen)
|
|
|
|
{
|
|
|
|
Screen.SetResolution(sys.resolutionX, sys.resolutionY, true);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Screen.SetResolution(sys.resolutionX, sys.resolutionY, false);
|
|
|
|
}
|
|
|
|
//声音设置//切场景单独调用
|
|
|
|
|
|
|
|
//画面设置
|
|
|
|
if (sys.frameSelect == Frame.低配置)
|
|
|
|
{
|
|
|
|
QualitySettings.SetQualityLevel(1);
|
|
|
|
}
|
|
|
|
if (sys.frameSelect == Frame.中配置)
|
|
|
|
{
|
|
|
|
QualitySettings.SetQualityLevel(2);
|
|
|
|
}
|
|
|
|
if (sys.frameSelect == Frame.高配置)
|
|
|
|
{
|
|
|
|
QualitySettings.SetQualityLevel(4);
|
|
|
|
}
|
|
|
|
if (sys.frameSelect == Frame.完美画质)
|
|
|
|
{
|
|
|
|
QualitySettings.SetQualityLevel(5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// 设置声音,每个场景都要调一次
|
|
|
|
/// </summary>
|
|
|
|
public static void SoundSetFunction()
|
|
|
|
{
|
|
|
|
ThisVoiceType[] voiceall = FindObjectsOfType<ThisVoiceType>();
|
|
|
|
if (voiceall != null && voiceall.Length > 0)
|
|
|
|
{
|
|
|
|
for (int i = 0; i < voiceall.Length; i++)
|
|
|
|
{
|
|
|
|
if (voiceall[i].Voice_Type == VoiceType.背景音)
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().volume = BgmValue;
|
|
|
|
voiceall[i].GetComponent<AudioSource>().loop = true;
|
|
|
|
}
|
|
|
|
else if (voiceall[i].Voice_Type == VoiceType.特效音)
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().volume = SEValue;
|
|
|
|
voiceall[i].GetComponent<AudioSource>().playOnAwake = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
if (IsMute)
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().enabled = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().enabled = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public static void DefultSoundSetFunction()
|
|
|
|
{
|
|
|
|
ThisVoiceType[] voiceall = FindObjectsOfType<ThisVoiceType>();
|
|
|
|
if (voiceall != null && voiceall.Length > 0)
|
|
|
|
{
|
|
|
|
for (int i = 0; i < voiceall.Length; i++)
|
|
|
|
{
|
|
|
|
if (voiceall[i].Voice_Type == VoiceType.背景音)
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().volume = DefultBgmValue;
|
|
|
|
}
|
|
|
|
else if (voiceall[i].Voice_Type == VoiceType.特效音)
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().volume = DefultSEValue;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
if (IsMute)
|
|
|
|
{
|
|
|
|
voiceall[i].GetComponent<AudioSource>().enabled = DefultIsMute;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 读取json文件,没有返回默认;
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public System_Setting LoadFromFile()
|
|
|
|
{
|
|
|
|
if (!File.Exists(path))
|
|
|
|
{
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
StreamReader sr = new StreamReader(path);
|
|
|
|
|
|
|
|
if (sr == null)
|
|
|
|
{
|
|
|
|
Hinttext="文件流为空";
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
string json = sr.ReadToEnd();
|
|
|
|
|
|
|
|
if (json.Length > 0)
|
|
|
|
{
|
|
|
|
Hinttext = "配置成功";
|
|
|
|
return JsonUtility.FromJson<System_Setting>(json);
|
|
|
|
}
|
|
|
|
|
|
|
|
Hinttext = "配置失败";
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SaveToJson(System_Setting sys)
|
|
|
|
{
|
|
|
|
string json = JsonUtility.ToJson(sys, true);
|
|
|
|
File.WriteAllText(path, json, Encoding.UTF8);
|
|
|
|
}
|
|
|
|
public System_Setting DefuletSetting()
|
|
|
|
{
|
|
|
|
System_Setting sys = new System_Setting();
|
|
|
|
sys.resolutionX = DefultResolutionX;
|
|
|
|
sys.resolutionY = DefultResolutionY;
|
|
|
|
sys.isFullScreen = DefulteIsFullScreen;
|
|
|
|
sys.bgmValue = DefultBgmValue;
|
|
|
|
sys.seValue = DefultSEValue;
|
|
|
|
sys.isMuto = DefultIsMute;
|
|
|
|
sys.frameSelect = DefultFrameSelect;
|
|
|
|
return sys;
|
|
|
|
}
|
|
|
|
}
|