Commit 5f8903dc authored by Ever's avatar Ever

更新保存文件

parent c219757b
...@@ -16,6 +16,11 @@ using UnityEngine.Windows; ...@@ -16,6 +16,11 @@ using UnityEngine.Windows;
using Input = UnityEngine.Input; using Input = UnityEngine.Input;
using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine.Rendering; using UnityEngine.Rendering;
using System.Security.Policy;
using UnityEngine.Networking;
using Directory = System.IO.Directory;
using static UnityEditor.Progress;
using File = System.IO.File;
public class mainGameView : MonoBehaviour //大图的处理、具体的玩法 public class mainGameView : MonoBehaviour //大图的处理、具体的玩法
{ {
...@@ -1722,21 +1727,74 @@ public class mainGameView : MonoBehaviour //大图的处理、具体的玩法 ...@@ -1722,21 +1727,74 @@ public class mainGameView : MonoBehaviour //大图的处理、具体的玩法
item.localRotation = Quaternion.Euler(0, 0, 0); item.localRotation = Quaternion.Euler(0, 0, 0);
item.localScale= Vector3.one; item.localScale= Vector3.one;
EventDispatcher.Dispatch(EventName.Event.Event_LoadingChange); //开始初始化
string path = Application.persistentDataPath + $"/MyPic/cc2D9Z2w9k0evqUiCQ/";
if (Directory.Exists(path))
{
StartCoroutine(LoadPic(path, "cc2D9Z2w9k0evqUiCQ", item));
return;
}
var png = Resources.Load<Texture2D>("cc2D9Z2w9k0evqUiCQ/png"); var png = Resources.Load<Texture2D>("cc2D9Z2w9k0evqUiCQ/png");
var jpg_texture = Resources.Load<Texture2D>("cc2D9Z2w9k0evqUiCQ/jpg"); var jpg_texture = Resources.Load<Texture2D>("cc2D9Z2w9k0evqUiCQ/jpg");
var jpg= Sprite.Create(jpg_texture, new Rect(0, 0, jpg_texture.width, jpg_texture.height), new Vector2(0.5f, 0.5f)); var jpg= Sprite.Create(jpg_texture, new Rect(0, 0, jpg_texture.width, jpg_texture.height), new Vector2(0.5f, 0.5f));
var jsondata = getdata(); var jsondata = getdata("cc2D9Z2w9k0evqUiCQ");
EventDispatcher.Dispatch(EventName.Event.Event_LoadingChange); //开始初始化
item.GetComponent<GameMgr>().Init("cc2D9Z2w9k0evqUiCQ",png, jpg, jsondata); item.GetComponent<GameMgr>().Init("cc2D9Z2w9k0evqUiCQ",png, jpg, jsondata);
}
IEnumerator LoadPic(string dirpath,string name,Transform item)
{
Texture2D png=null;
Sprite jpg=null;
string pngpath = dirpath+$"{name}.png";
UnityWebRequest request;
if (File.Exists(pngpath))
{
request = UnityWebRequestTexture.GetTexture(pngpath);
yield return request.SendWebRequest();
if (request.isDone)
{
png = DownloadHandlerTexture.GetContent(request);
}
}
else
{
png = Resources.Load<Texture2D>("cc2D9Z2w9k0evqUiCQ/png");
}
string jpgpath= dirpath + $"{name}.jpg";
if (File.Exists(jpgpath))
{
request = UnityWebRequestTexture.GetTexture(jpgpath);
yield return request.SendWebRequest();
if (request.isDone)
{
var jpg_texture = DownloadHandlerTexture.GetContent(request);
jpg = Sprite.Create(jpg_texture, new Rect(0, 0, jpg_texture.width, jpg_texture.height), new Vector2(0.5f, 0.5f));
}
}
else
{
var jpg_texture = Resources.Load<Texture2D>("cc2D9Z2w9k0evqUiCQ/jpg");
jpg = Sprite.Create(jpg_texture, new Rect(0, 0, jpg_texture.width, jpg_texture.height), new Vector2(0.5f, 0.5f));
} }
var jsondata = getdata("cc2D9Z2w9k0evqUiCQ");
item.GetComponent<GameMgr>().Init("cc2D9Z2w9k0evqUiCQ", png, jpg, jsondata);
}
private ResJsonData getdata() private ResJsonData getdata(string name)
{ {
string path = $"{Application.dataPath}/Resources/cc2D9Z2w9k0evqUiCQ/cc2D9Z2w9k0evqUiCQ.bin"; string path;//= $"{Application.dataPath}/Resources/cc2D9Z2w9k0evqUiCQ/cc2D9Z2w9k0evqUiCQ.bin";
path = Application.persistentDataPath + $"/MyPic/{name}/{name}.bin";
if (!File.Exists(path))
{
path = $"{Application.dataPath}/Resources/cc2D9Z2w9k0evqUiCQ/cc2D9Z2w9k0evqUiCQ.bin";
}
FileStream readFs = new FileStream(path, FileMode.Open); FileStream readFs = new FileStream(path, FileMode.Open);
BinaryFormatter readBf = new BinaryFormatter(); BinaryFormatter readBf = new BinaryFormatter();
ResJsonData rjd = (ResJsonData)readBf.Deserialize(readFs); ResJsonData rjd = (ResJsonData)readBf.Deserialize(readFs);
......
...@@ -16,7 +16,7 @@ public class SaveManager : MonoBehaviour ...@@ -16,7 +16,7 @@ public class SaveManager : MonoBehaviour
{ {
get get
{ {
return Application.dataPath+$"/Resources/cc2D9Z2w9k0evqUiCQ/"; //暂时先用这里的 return Application.persistentDataPath+ "/MyPic/";//Application.dataPath+$"/Resources/cc2D9Z2w9k0evqUiCQ/"; //暂时先用这里的
} }
set { savepath = value; } set { savepath = value; }
} }
...@@ -24,16 +24,25 @@ public class SaveManager : MonoBehaviour ...@@ -24,16 +24,25 @@ public class SaveManager : MonoBehaviour
{ {
instance = this; instance = this;
} }
private void Start()
{
if (!Directory.Exists(SavePath))
{
Directory.CreateDirectory(SavePath);
}
}
public void SaveRes(string key, ResJsonData data,Texture2D png) public void SaveRes(string key, ResJsonData data,Texture2D png)
{ {
SavePng(key, png);
SaveBin(key, data);
} }
public void SaveBin(string pngname,ResJsonData data) public void SaveBin(string key,ResJsonData data)
{ {
string json= JsonUtility.ToJson(data); string json= JsonUtility.ToJson(data);
SaveBin(pngname,json); SaveBin(key,json);
} }
/// <summary> /// <summary>
...@@ -41,10 +50,11 @@ public class SaveManager : MonoBehaviour ...@@ -41,10 +50,11 @@ public class SaveManager : MonoBehaviour
/// </summary> /// </summary>
/// <param name="path"></param> /// <param name="path"></param>
/// <param name="json"></param> /// <param name="json"></param>
public void SaveBin(string pngname, string json) public void SaveBin(string key, string json)
{ {
CreateDirectory(SavePath + $"{key}");
FileStream fs = new FileStream(SavePath+$"{name}.bin", FileMode.Create, FileAccess.Write); string path = SavePath + $"{key}/{key}.bin";
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
BinaryFormatter saveBf = new BinaryFormatter(); BinaryFormatter saveBf = new BinaryFormatter();
saveBf.Serialize(fs, json); saveBf.Serialize(fs, json);
fs.Close(); fs.Close();
...@@ -55,43 +65,35 @@ public class SaveManager : MonoBehaviour ...@@ -55,43 +65,35 @@ public class SaveManager : MonoBehaviour
/// </summary> /// </summary>
/// <param name="path"></param> /// <param name="path"></param>
/// <param name="png"></param> /// <param name="png"></param>
public void SavePng(Texture2D png) public void SavePng(string key, Texture2D png)
{ {
//var colors = png.GetPixels(); CreateDirectory(SavePath + $"{key}");
string path = SavePath + $"{key}/{key}.png";
//for (int i = 0; i < png.width; i+=2)
//{
// for (int j = 0; j < png.height; j+=2)
// {
// png.SetPixel(i, j, new Color(1, 1, 1, 1));
// }
//}
//png.Apply();
byte[] dataBytes = png.EncodeToPNG(); byte[] dataBytes = png.EncodeToPNG();
FileStream fs = File.Open(SavePath+$"{png.name}.png", FileMode.OpenOrCreate); FileStream fs = File.Open(path, FileMode.OpenOrCreate);
fs.Write(dataBytes, 0, dataBytes.Length); fs.Write(dataBytes, 0, dataBytes.Length);
fs.Flush(); fs.Flush();
fs.Close(); fs.Close();
} }
public void SaveJPG(Texture2D png) public void SaveJPG(string key, Texture2D png)
{ {
//var colors = png.GetPixels(); string path = SavePath + $"{key}/{key}.jpg";
CreateDirectory(SavePath + $"{key}");
//for (int i = 0; i < png.width; i+=2)
//{
// for (int j = 0; j < png.height; j+=2)
// {
// png.SetPixel(i, j, new Color(1, 1, 1, 1));
// }
//}
//png.Apply();
byte[] dataBytes = png.EncodeToPNG(); byte[] dataBytes = png.EncodeToPNG();
FileStream fs = File.Open(SavePath + $"{png.name}.jpg", FileMode.OpenOrCreate); FileStream fs = File.Open(path, FileMode.OpenOrCreate);
fs.Write(dataBytes, 0, dataBytes.Length); fs.Write(dataBytes, 0, dataBytes.Length);
fs.Flush(); fs.Flush();
fs.Close(); fs.Close();
} }
private void CreateDirectory(string dirpath)
{
if (!Directory.Exists(dirpath))
{
Directory.CreateDirectory(dirpath);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment