dj009
dj009

Reputation: 51

Unity Webgl in Angular giving object null reference error while using coroutine

I have implemented Unity Webgl in Angular 11 (Followed this steps). I use SendMessage to communicate between Angular and Unity. I have coroutine function for wwwForm post. This works okay in Unity and simple webgl implementation but it gives error "NullReferenceException Object Reference not set to an instance of an object" immediate after calling coroutine(Angular build). Object is active in Unity where this script is attached.

Angular side code

        sample_btn.addEventListener('click', function () {
          var floor_num = 6;
          var building_name = 'Bldg';
          window.floor_num = floor_num;
          window.building_name = building_name;

          formData = new FormData();  
          formData.append('building_name', building_name);
          formData.append('floor_number', floor_num);
          unityInstance.SendMessage("Main Camera", "fetchFloorDesksData");
})
  

C#

    {      
       StartCoroutine(GetRequest());
//Getting error here
    }

    IEnumerator GetRequest()
    {
        WWWForm form = new WWWForm();
        form.AddField("building_name", buildingName);
        form.AddField("floor_number", floorNumber);
        //Debug.Log("Called Here");
        UnityWebRequest webRequest = UnityWebRequest.Post(url, form);
        yield return webRequest.SendWebRequest();
        Debug.Log(webRequest.downloadHandler.text);
        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            Debug.Log(webRequest.error);
        }
        else
        {
            desks = JsonUtility.FromJson<desks>("{\"data\":" + webRequest.downloadHandler.text + "}");
           startPlacement();
        }
    }```

Upvotes: 1

Views: 536

Answers (1)

dj009
dj009

Reputation: 51

I got this solved by using ngAfterViewInit() instead of ngOnInit().

Upvotes: 1

Related Questions