如何从c#调用服务器端的方法

时间:2016-06-06 06:34:09

标签: c# .net unity3d server backend

我在堆栈溢出时得到了这个QA - How to call code behind server method from a client side javascript function?

然而,它是从javascript调用函数,我怎么能从c#中执行。我使用 unity3d 来开发ios应用程序,我以前没有这样做过。有人知道怎么做吗?

提前致谢。

P.S。关于后端

后端给出如下所示的内容。 url:https:// {服务器地址} /注册 paramters:

  • 用户名,字符串
  • name,string
  • pwd,string

并返回: - user_id,int

我使用正确的参数运行服务器方法,如果参数正确,则返回 int / user_id 返回。

2 个答案:

答案 0 :(得分:1)

WWW unity3d Class,这可能就是你想要的。 WWW是

  

一个小型实用程序模块,用于检索URL的内容。

有关使用C#进行与服务器(PHP)交互的详细信息,我将建议您unitywiki link。您将需要像本教程所建议的那样执行此类操作。

 IEnumerator GetData()
    {
        gameObject.guiText.text = "Loading Scores";
        WWW hs_get = new WWW(highscoreURL);//highscoreURL this is ur url as u said
        yield return hs_get;

        if (hs_get.error != null)//checking empty or error response etc
        {
            print("There was an error getting the high score: " + hs_get.error);
        }
        else
        {
            gameObject.guiText.text = hs_get.text; // this is a GUIText that will display the scores in game.
        }
    }

根据您的规范可以自定义的重置事项是使用Co-routine的WWW。

答案 1 :(得分:0)

我在this blog -- devindia

找到了一篇关于此事的帖子

从表面上看,将WWWForm作为辅助参数添加到WWW,然后it is a post to server.

using UnityEngine;
using System.Collections;

public class PostJsonDataScript : MonoBehaviour
{
    // Use this for initialization
    string Url;
    void Start()
    {
        Url = "Url to the service";
        PostData(100,"Unity");
    }
    // Update is called once per frame
    void Update()
    {

    }
    void PostData(int Id,string Name)
    {
        WWWForm dataParameters = new WWWForm();
        dataParameters.AddField("Id", Id);
        dataParameters.AddField("Name", Name);
        WWW www = new WWW(Url,dataParameters);
        StartCoroutine("PostdataEnumerator", Url);
    }
    IEnumerator PostdataEnumerator(WWW www)
    {
        yield return www;
        if (www.error != null)
        {
            Debug.Log("Data Submitted");
        }
        else
        {
            Debug.Log(www.error);
        }
    }
}