这个给大家带来的是Unity与阿里云服务器数据的上传和下载,如有不正之处,还望指出!
1.导入Ailiyun.dll的SDK(阿里云官网的开发者指南)
2.引入相应的命名空间
3.上传字符串到云服务器
A:在阿里云服务器的对象存储OSS,新建Bucket,这个Bucket就可以做为上传文件的存储空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Aliyun.OSS;
using Aliyun.OSS.Common;
using System.Text;
using System.IO;
public class PutObejct : MonoBehaviour {
private OssClient clinet;
public static PutObejct Instance;
void Awake ()
{
Instance = this;
clinet = new OssClient(Config.EndPoint,Config.AccessKeyid,Config.AccessKeySecret);
}
B:新建一个Config的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Config {
public const string AccessKeyid = "LTAI5IcR2fyUo734";
public const string AccessKeySecret = "k3lPVxasn5cBzWRLY6PGL4Amzf0m01";
public const string EndPoint = "oss-cn-shenzhen.aliyuncs.com";
public const string Bucket = "zzrto";
}
D:实现字符串上传
//字符串上传
public void PutObjWithStr(string fileName, string text)
{
try
{
byte[] b = Encoding.UTF8.GetBytes(text);
using (Stream stream = new MemoryStream(b))
{
clinet.PutObject(Config.Bucket, fileName, stream);
Debug.Log("字符串上传成功" + text);
}
}
catch (OssException e)
{
Debug.Log("字符串上传错误:" + e);
}
catch (System.Exception e)
{
Debug.Log("字符串上传错误:" + e);
}
}
E:实现文件上传(txt,zip各种格式都可以)
public void PutObjFormLocal(string localPath,string fileName)
{
try
{
clinet.PutObject(Config.Bucket, fileName, localPath);
Debug.Log("本地上传成功" + localPath);
}
catch(OssException e)
{
Debug.Log("本地上传:" + e.Message);
}
catch (System.Exception e)
{
Debug.Log("本地上传:" + e.Message);
}
}
F:将FutObject设置为单例模式,创建一个新的Test脚本,当按下A键上传文件
//本地字符串上传测试
void Update ()
{
if(Input.GetKeyDown(KeyCode.Space))
{
//字符串上传测试
// PutObejct.Instance.PutObjWithStr("Text.txt", "EveryOne,My Name is Zzr");
//本地字符串上传测试
PutObejct.Instance.PutObjFormLocal(@"C:\Users\Administrator\Desktop\新建文本文档.txt", "zzr.txt");
//模型上传
PutObejct.Instance.PutObjFormLocal(@"E:\Unity3D游戏案例\SIKI学院案例\中级案例\AliyunOSS\Assets\AssetBundles\Capsule\capsule.zzr", "capsule.zzr");
PutObejct.Instance.PutObjFormLocal(@"E:\Unity3D游戏案例\SIKI学院案例\中级案例\AliyunOSS\Assets\AssetBundles\Cube\cube.zzr", "cube.zzr");
PutObejct.Instance.PutObjFormLocal(@"E:\Unity3D游戏案例\SIKI学院案例\中级案例\AliyunOSS\Assets\AssetBundles\Cylinder\cylinder.zzr", "cylinder.zzr");
}
}
}
本地文件上传时,需要传递的参数是文件的路径,文件可以自己创建,路径的前面要加转义符@,第二个参数是xxx.txt类型的字符串,可以随意定义
注:字符串上传失败要将Build Setting里面的Player setting的.Net版本改为4.6
模型上传:需要填打包后模型所在的路径
以上就是unity结合阿里云字符串数据上传和本地文件上传的代码,接下来我会发布如果通过网络加载模型!