Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by sebastiants2008 · Jul 04, 2019 at 01:13 AM · systemwebitemmmorpgonline game

how can i fix this error CS7036? its an issue comunicating a callback from a server

Hello guys,

I’m doing a stock list that fill itself with the data of the tables in a server (like an inventory system for a mmorpg). for that, I’m using a Web.cs that call the info from a php file and a Stock.cs that is using the info obtained to create an item Stock for each StockID and fill the name with the Name of the item.

the error that I’m obtaining is:

Error CS7036 There is no argument given that corresponds to the required formal parameter 'callback' of 'Web.GetStockID(string, Action)'

at my Web.cs

i think that is because Stock.cs. I've been checking and i cant spot why, please help me.

thanks.

PD: im leaving the scrips below (first web, and then stock):

WEB>

 // Start is called before the first frame update
 void Start()
 {
     StartCoroutine(GetDate());
     StartCoroutine(GetUsers());
 }


 public void ShowStock()
 {
     StartCoroutine(GetStockID(Main.Instance.UserInfo.UserId));

 }
 IEnumerator GetDate() //ordena los mensajes en forma de lista
 {

     using (UnityWebRequest webRequest = UnityWebRequest.Get("http://localhost/ar_demo/GetDate.php"))
     {
         // Request and wait for the desired page.
         yield return webRequest.SendWebRequest();



         if (webRequest.isNetworkError)
         {
             Debug.Log(webRequest.error);
         }
         else
         {
             //Show Results as Text
             Debug.Log(webRequest.downloadHandler.text);

             //Or retrieve results as binary

             byte[] results = webRequest.downloadHandler.data;
         }
     }
 }




 IEnumerator GetUsers() //ordena los mensajes en forma de lista
 {

     using (UnityWebRequest webRequest = UnityWebRequest.Get("http://localhost/ar_demo/GetUser.php"))
     {
         // Request and wait for the desired page.
         yield return webRequest.SendWebRequest();



         if (webRequest.isNetworkError)
         {
             Debug.Log(webRequest.error);
         }
         else
         {
             //Show Results as Text
             Debug.Log(webRequest.downloadHandler.text);

             //Or retrieve results as binary

             byte[] results = webRequest.downloadHandler.data;
         }
     }
 }



 public IEnumerator Login(string Username, string Password) //ordena los mensajes en forma de lista
 {
     WWWForm form = new WWWForm();
     form.AddField("loginUser", Username);
     form.AddField("loginPass", Password);


     using (UnityWebRequest webRequest = UnityWebRequest.Post("http://localhost/ar_demo/Login.php", form))
     {
         // Request and wait for the desired page.
         yield return webRequest.SendWebRequest();


         if (webRequest.isNetworkError || webRequest.isHttpError)
         {
             Debug.Log(webRequest.error);
         }
         else
         {
             Debug.Log(webRequest.downloadHandler.text);
             Main.Instance.UserInfo.SetCredentials(Username, Password);
             Main.Instance.UserInfo.SetID(webRequest.downloadHandler.text);




             if (webRequest.downloadHandler.text.Contains("wrong credentials")
                 || webRequest.downloadHandler.text.Contains("Username does not exist."))
             {
                 Debug.Log("Try again.");
             }

             //if we loging correctly
             else

             {
                 Main.Instance.ImmersiveMediahype.SetActive(true);
                 Main.Instance.Login.gameObject.SetActive(false);

             }

         }
     }

 }


 public IEnumerator GetStockID(string UserID, Action<string> callback) //ordena los mensajes en forma de lista  
 {


     WWWForm form = new WWWForm();
     form.AddField("UserID", UserID);

     using (UnityWebRequest webRequest = UnityWebRequest.Post("http://localhost/ar_demo/GetStockID.php", form))
     {
         // Request and wait for the desired page.
         yield return webRequest.SendWebRequest();

         if (webRequest.isNetworkError)
         {
             Debug.Log(webRequest.error);
         }
         else
         {
             //Show Results as Text

             Debug.Log(webRequest.downloadHandler.text);

             string jsonArray = webRequest.downloadHandler.text;
             
             //Call callback function to pass results
             callback(jsonArray);
         }
     }
 }


 
 public IEnumerator GetStock(string StockID, System.Action<string> callback) //, System.Action<string> callback) //ordena los mensajes en forma de lista  
 {


     WWWForm form = new WWWForm();
     form.AddField("StockID", StockID);

     using (UnityWebRequest webRequest = UnityWebRequest.Post("http://localhost/ar_demo/GetStock.php", form))
     {
         // Request and wait for the desired page.
         yield return webRequest.SendWebRequest();



         if (webRequest.isNetworkError)
         {
             Debug.Log(webRequest.error);
         }
         else
         {
             //Show Results as Text

             Debug.Log(webRequest.downloadHandler.text);

             string jsonArray = webRequest.downloadHandler.text;


             //Call callback function to pass results

             callback(jsonArray);
         }
     }
 }






Stock>

 Action<string> _createItemsCallback;
 // Start is called before the first frame update
 void Start()
 {
     _createItemsCallback = (jsonArrayString) =>
     {
         StartCoroutine(CreateItemsCoroutine(jsonArrayString));
     };


     CreateItems();
 }

 public void CreateItems(){
     string UserID = Main.Instance.UserInfo.UserId;
     StartCoroutine(Main.Instance.Web.GetStockID(UserID,_createItemsCallback));
     
 }

 IEnumerator CreateItemsCoroutine(string jsonArrayString)
 {


     //parsing the jsonArrary as an array
     JSONArray jsonArray = JSON.Parse(jsonArrayString) as JSONArray;

     for (int i = 0; i < jsonArray.Count; i++)
     {
         //create local variables

         bool isDone = false; //is it done?
         string DiscountItem = jsonArray[i].AsObject["StockID"];
         JSONObject itemNamejson = new JSONObject();

         //create a callback to get the information from web.cs

         Action<string> getDiscountCallback = (ItemName) =>
         {
             isDone = true;
             JSONArray tempArray = JSON.Parse(ItemName) as JSONArray;
             itemNamejson = tempArray[0].AsObject;
         };

         StartCoroutine(Main.Instance.Web.GetStock(DiscountItem, getDiscountCallback));

         //Wait until the callback is called from WEB (inf finish dowloading)
         yield return new WaitUntil(() => isDone == true);

         //instantiate ameObject (Item Prefab)
         GameObject stock = Instantiate(Resources.Load("PREFABS/stock") as GameObject);
         stock.transform.SetParent(this.transform);
         stock.transform.localScale = Vector3.one;
         stock.transform.localPosition = Vector3.zero;

         // fill the information

         stock.transform.Find("Name").GetComponent<Text>().text = itemNamejson["Name"];

         //continue to the next item

     }

     
 }





Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Bunny83 · Jul 04, 2019 at 01:15 AM

You declared your coroutine like this:

 public IEnumerator GetStock(string StockID, System.Action<string> callback)
 {

but you call it like this:

 public void ShowStock()
 {
     StartCoroutine(GetStockID(Main.Instance.UserInfo.UserId));
 }

You do not pass any callback here.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image sebastiants2008 · Jul 06, 2019 at 12:51 PM 0
Share

@Bunny83 i thought i was geting a callback after i login, how should i pass the call back to that button function?

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

178 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Read and Display Data from online JSON 0 Answers

How should the mmo server be made? In unity with a simulated world? 0 Answers

In Game Shop System (Use and Buy Problems) Help!!!!!!!! 0 Answers

make a system for me 0 Answers

Need help checking if an item slot is filled 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges