Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Error Handling in UNET

Discussion in 'UNet' started by diesen1, Aug 8, 2015.

  1. diesen1

    diesen1

    Joined:
    Jul 3, 2014
    Posts:
    15
    how can I get the error text and code in unity networking,?

    I did the following:
    1- subscribe to the Handler : Client.RegisterHandler(MsgType.Error, OnError);
    2- create the handler
    void OnError(NetworkMessage netMsg)
    {
    how can I print the ERROR message here
    }
     
  2. l3fty

    l3fty

    Joined:
    Mar 23, 2013
    Posts:
    86
    Usually you would do something like:
    ErrorMessageType errorMsg = netMsg.ReadMessage<ErrorMessageType>();

    And then you could get at the information in that message. Though I can't find any reference to the class Unity would associate with MsgType.Error. It's possibly something they haven't exposed. Other kinds of messages use a class we define ourselves ontop of MessageBase. Hopefully someone else knows more, as it sure would be useful to get at :D
     
  3. seanr

    seanr

    Unity Technologies

    Joined:
    Sep 22, 2014
    Posts:
    669
  4. GunLengend

    GunLengend

    Joined:
    Sep 24, 2014
    Posts:
    54
    It's said ErrorMessage doesn't contain in current context ?
     
    perevezentsev likes this.
  5. saadminhas

    saadminhas

    Joined:
    Jul 3, 2012
    Posts:
    2
    I have been trying to implement a function which upon failing to connect to the server takes the user to a different scene.
    I have managed to implement the above code, and everything works fine, i can get the messages upon failing to connect.
    But i just can't make my code to do anything else(change the scene) instead of just delivering messages.

    Any assistance would be highly appreciated..
     
  6. carterdawson

    carterdawson

    Joined:
    Jan 18, 2014
    Posts:
    5
    I just ran across this, and it looks like it wasn't resolved, and I suffered through the same problem.

    You need to use UnityEngine.Networking.NetworkSystem:

    using UnityEngine.Networking.NetworkSystem;

    ...

    Debug.Log("Client: OnError: " + netMsg.ToString());
    ErrorMessage mess = netMsg.ReadMessage<ErrorMessage> ();
    owner.OnGameError ("Failed to connect: " + ((NetworkError)mess.errorCode).ToString());

    Why is mess.errorCode an int and not a NetworkError? Who knows?

    Shaun
     
    perevezentsev likes this.