Unity与服务区交互数据

Unity与服务区交互数据

  Unity可能在用的时候使用到登陆等需要与服务器交互数据。今天尝试使用了WWW类和WWWForm类来实现Get请求与Post请求。

1.WWW

  Unity圣典解释:

  WWW会返回一个新的WWW对象。当它被下载,其结果可以从返回对象中获取。这个函数创建和发送一个GET请求,流将自动开始下载响应。流创建之后,你必须等待它完成,然而可以访问已下载的数据。作为一个方面的流可以被中断,因此你可以容易的告诉Unity等待下载完成。你可以检查isDone属性来查看是否已经下载完成,或者yield自动等待下载物体,直到它被下载完成(不会影响游戏的其余部分)。

Variables变量

  • text
    Returns the contents of the fetched web page as a string (Read Only).
    通过网页获取并以字符串的形式返回内容(只读)。
  • bytes
    Returns the contents of the fetched web page as a byte array (Read Only).
    以字节组的形式返回获取到的网络页面中的内容(只读)。
  • error
    Returns an error message if there was an error during the download (Read Only).
    返回一个错误消息,在下载期间如果产生了一个错误的话。(只读)
  • texture
    Returns a Texture2D generated from the downloaded data (Read Only).
    从下载的数据返回生成的一个Texture2D(只读)。
  • audioClip
    Returns a AudioClip generated from the downloaded data (Read Only).
    从下载的数据,返回一个AudioClip。(只读)
  • movie
    Returns a MovieTexture generated from the downloaded data (Read Only).
    从下载的数据,返回一个MovieTexture(只读)。
  • isDone
    Is the download already finished? (Read Only)
    判断下载是否已经完成(只读)?
  • progress
    How far has the download progressed (Read Only).
    下载进度有多少(只读)?
  • uploadProgress
    How far has the upload progressed (Read Only).
    上传进度有多少(只读)
  • oggVorbis
    Load an Ogg Vorbis file into the audio clip.
    加载一个Ogg Vorbis文件到音频剪辑。
  • url
    The URL of this WWW request (Read Only).
    该WWW请求的URL(只读)。
  • assetBundle
    Streams an AssetBundle that can contain any kind of asset from the project folder.
    AssetBundle的数据流,可以包含项目文件夹中的任何类型资源。
  • threadPriority
    Priority of AssetBundle decompression thread.
    AssetBundle解压缩线程的优先级。

Constructors构造器

  • WWW
    Creates a WWW request with the given URL.
    用给定的URL创建一个WWW请求。

Functions函数

  • GetAudioClip
    Returns a AudioClip generated from the downloaded data (Read Only).
    从下载数据,返回一个AudioClip(只读)。
  • LoadImageIntoTexture
    Replaces the contents of an existing Texture2D with an image from the downloaded data.
    利用一个从下载数据中的图像来替换现有Texture2D
  • LoadUnityWeb
    Loads the new web player data file.
    加载新的web播放器数据文件。

Class Functions类函数

    • EscapeURL
      Encodes string into an URL-friendly format.
      字符串编码成一个URL的格式。
    • UnEscapeURL
      Decodes string from an URL-friendly format.
      从一个URL格式解码字符串。
    • LoadFromCacheOrDownload
      Loads an assetBundle from the cache, or downloads it, in case it is not cached.
      从缓存加载一个资源包,如果没有被缓存,或从下载加载。 

2.WWWForm

  辅助类。用来生成表单数据,使用WWW类传递到web服务器。

Variables变量

  • headers
    (Read Only) Returns the correct request headers for posting the form using the WWW class.
    (只读)为使用WWW类传递的表单返回一个正确的请求头。
  • data
    (Read Only) The raw data to pass as the POST request body when sending the form.
    (只读)在发送表单的时,原始数据作为POST请求发送。

Constructors构造器

  • WWWForm
    Creates an empty WWWForm object.
    创建一个空的网页表单对象。

Functions函数

    • AddField
      Add a simple field to the form.
      添加一个简单的域到表单。
    • AddBinaryData
      Add binary data to the form.
      添加二进制数据到表单。 

3.使用方法

  这里试着从网上下载一个图片替换物体的贴图。

using System;
using UnityEngine;
using System.Collections;using System.Net;public class WWWZ : MonoBehaviour {void Start()
    {string path= "http://a3.att.hudong.com/72/37/01200000194734134393377005543_s.jpg";
        StartCoroutine(GoForm());
    }
    IEnumerator GoStart()
    {
        WWW www = new WWW(path);
        yield return www;

        if (www.isDone)
        {
            GetComponent<Renderer>().material.mainTexture = www.texture;
        }
    }
}

 

接下来是想URL传递表单数据。

using System;
using UnityEngine;
using System.Collections;
using System.Net;
using System.Text;
using LitJson;

public class WWWZ : MonoBehaviour {

    public string url = "http://192.168.16.118:8080/google";//接受表单的地址


    void Start()
    {

        form = new WWWForm();

        form.AddField("action","login");
        form.AddField("username","abc");
        form.AddField("password", "123");

        StartCoroutine(GoForm());

        
    }
 

    IEnumerator GoForm()
    {
        WWW w=new WWW(url, form);
        yield return w;

        if (w.error != null)
            print(w.error);
        else
            Debug.Log(“提交成功!”);

    }
}

当然在可以和服务器简单的下载和提交信息后,我们甚至可以向服务器传递或从服务器获取xml,Json等信息,方便我们使用。

 

转载于:https://www.cnblogs.com/Firepad-magic/p/5797508.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值