Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/UploadDownloadTexture.cs
2026-02-21 16:45:37 +08:00

120 lines
2.4 KiB
C#

using System.Collections;
using UnityEngine;
public class UploadDownloadTexture : MonoBehaviour
{
public enum Mode
{
Upload = 0,
Download = 1
}
public Mode mode;
public string url = "http://www.server.com/ES2.php";
public string filename = "textureFile.txt";
public string textureTag = "textureTag";
public string webUsername = "ES2";
public string webPassword = "65w84e4p994z3Oq";
private void Start()
{
if (mode == Mode.Upload)
{
Texture2D texture = GetTexture();
if (texture == null)
{
Debug.LogError("There is no texture attached to this object.");
}
else
{
StartCoroutine(Upload(texture));
}
}
else
{
StartCoroutine(Download());
}
}
private IEnumerator Upload(Texture2D texture)
{
ES2Web web = new ES2Web(url, CreateSettings());
yield return StartCoroutine(web.Upload(texture));
if (web.isError)
{
Debug.LogError(web.errorCode + ":" + web.error);
}
else
{
Debug.Log("Uploaded Successfully. Reload scene to load texture into blank object.");
}
}
private IEnumerator Download()
{
ES2Web web = new ES2Web(url, CreateSettings());
yield return StartCoroutine(web.Download());
if (web.isError)
{
if (!(web.errorCode == "05"))
{
Debug.LogError(web.errorCode + ":" + web.error);
}
}
else
{
SetTexture(web.Load<Texture2D>(textureTag));
yield return StartCoroutine(Delete());
Debug.Log("Texture successfully downloaded and applied to blank object.");
}
}
private IEnumerator Delete()
{
ES2Web web = new ES2Web(url, CreateSettings());
yield return StartCoroutine(web.Delete());
if (web.isError)
{
Debug.LogError(web.errorCode + ":" + web.error);
}
}
private ES2Settings CreateSettings()
{
ES2Settings eS2Settings = new ES2Settings();
eS2Settings.webFilename = filename;
eS2Settings.tag = textureTag;
eS2Settings.webUsername = webUsername;
eS2Settings.webPassword = webPassword;
return eS2Settings;
}
private Texture2D GetTexture()
{
Renderer component = GetComponent<Renderer>();
if (component.material != null && component.material.mainTexture != null)
{
return component.material.mainTexture as Texture2D;
}
return null;
}
private void SetTexture(Texture2D texture)
{
Renderer component = GetComponent<Renderer>();
if (component.material != null)
{
component.material.mainTexture = texture;
}
else
{
Debug.LogError("There is no material attached to this object.");
}
}
}