Search Unity

HELP!? Compiler Errors on Client/Server Login Database

Discussion in 'Editor & General Support' started by Erisat, Jan 31, 2013.

  1. Erisat

    Erisat

    Joined:
    Jan 31, 2013
    Posts:
    88
    EDIT: just to let everyone know, Im a noob at all this,especially C#. I understand most of the code actually (except the xml region lol), so please try to be descriptive in answers. This is a learning experience for me.

    EDIT2: I'm not sure if this is relevant to my issue, but i am using Unity Free

    ok, so first off I am following wikened's tutorials:
    1: http://www.youtube.com/watch?v=RK6o9wMsV0I
    2: http://www.youtube.com/watch?v=CZ2icJLTOzs
    3: http://www.youtube.com/watch?v=5uw4enkJgv0
    4: http://www.youtube.com/watch?v=owZ8KdONduU
    5: http://www.youtube.com/watch?v=sYBZ1UhB1tM
    6: http://www.youtube.com/watch?v=3tjX4tBhDas
    7: http://www.youtube.com/watch?v=d4j35w4JFvo

    I am attempting to make a basic login system for my game that saves player information in xml files on the server side
    I make 3 scenes
    ClientLogin , where the login screen will be. the user types name,pass into the fields and can login or create an account
    ClientPlay , this is empty as of now, it will someday be the actual game
    Server , this is my server
    In the scene ClientLogin
    create empty gameobject named Info, attach the Info.cs script
    create empty gameobject named Login, attach Network View, and then attach ClientLogin.cs
    In the scene Server
    create empty gameobject named Server, attach Network View, and then attach Server.cs
    I build the Server.exe with only the Server scene included, I make it Run in Background
    I build the Client.exe with the ClientLogin (0) and ClientPlay (1) scenes, I make it Run in Background

    Info.cs
    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. public class Info : MonoBehaviour
    4. {
    5.     public static string Owner;
    6.     void Awake()
    7.     {
    8.         DontDestroyOnLoad(this);
    9.     }
    10. }

    AccountStructure.cs
    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. public class AccountStructure
    4. {
    5.     public Account account;
    6.     public struct Account
    7.     {
    8.         public string Username;
    9.         public string Password;
    10.         public Character character;
    11.         public struct Character
    12.         {
    13.             public Vector3 Position;
    14.             public Inventory inventory;
    15.             public struct Inventory
    16.             {
    17.                 public int One;
    18.                 public int Two;
    19.                 public int Three;
    20.                 public int Four;
    21.                 public int Five;
    22.                 public int Six;
    23.                 public int Seven;
    24.                 public int Eight;
    25.                 public int Nine;
    26.                 public int Ten;
    27.             }
    28.         }
    29.     }
    30. }

    ClientLogin.cs
    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. public class ClientLogin : MonoBehaviour
    4. {
    5.     private string username = "";
    6.     private string password = "";
    7.     void Connect()
    8.     {
    9.         Network.Connect("127.0.0.1",25000);
    10.     }
    11.     void OnGUI()
    12.     {
    13.         if(Network.peerType == NetworkPeerType.Disconnected)
    14.         {
    15.             if(GUI.Button(new Rect(10,10,100,30),"Connect"))
    16.             {
    17.                 Connect ();
    18.             }
    19.         }
    20.         else
    21.         {
    22.             username = GUI.TextArea(new Rect(10,10,120,30),username);
    23.             password = GUI.TextArea(new Rect(10,40,120,30),password);
    24.             if(GUI.Button(new Rect(10,70,60,30),"Login"))
    25.             {
    26.                 networkView.RPC("AccountLogin",RPCMode.Server,username,password,Network.player);
    27.             }
    28.             if(GUI.Button(new Rect(70,70,60,30),"Create"))
    29.             {
    30.                 networkView.RPC("AccountCreate",RPCMode.Server,username,password,Network.player);
    31.             }
    32.         }
    33.     }
    34.     [RPC]
    35.     public void AccountLogin(string Username,string Password,NetworkPlayer player)
    36.     {
    37.         Info.Owner = Username;
    38.         Application.LoadLevel("ClientPlay");
    39.     }
    40.     [RPC]
    41.     public void AccountCreate(string Username,string Password,NetworkPlayer player)
    42.     {
    43.     }
    44. }


    Server.cs
    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using System.Xml;
    4. using System.Xml.Serialization;
    5. using System.IO;
    6. using System.Text;
    7. public class Server : MonoBehaviour
    8. {
    9.     public Vector3 Startpos = new Vector3(1f,1f,1f);
    10.     string _FileLocation,_FileName;
    11.     AccountStructure RegisterData;
    12.     string _data;
    13.     public void Start()
    14.     {
    15.         _FileLocation = Application.dataPath;
    16.         RegisterData = new AccountStructure();
    17.     }
    18.     void OnGUI()
    19.     {
    20.         if(Network.peerType == NetworkPeerType.Disconnected)
    21.         {
    22.             if(GUI.Button(new Rect(10,10,100,30),"Start"))
    23.             {
    24.                 Network.InitializeServer(32,25000,false);
    25.             }
    26.         }
    27.         if(Network.peerType != NetworkPeerType.Disconnected)
    28.         {
    29.             if(GUI.Button(new Rect(10,10,100,30),"Stop"))
    30.             {
    31.                 Network.Disconnect ();
    32.             }
    33.         }
    34.     }
    35.     [RPC]
    36.     public void AccountLogin(string username,string password,NetworkPlayer player)
    37.     {
    38.         LoadXML(username + ".xml");
    39.         if(_data.ToString() != "")
    40.         {
    41.             RegisterData = (AccountStructure)DeserializeObject(_data);
    42.             if(RegisterData.account.Password == password)
    43.             {
    44.                 networkView.RPC("AccountLogin",username,password,Network.player);  
    45.             }
    46.         }
    47.     }
    48.     [RPC]
    49.     public void AccountCreate(string username,string password,NetworkPlayer player)
    50.     {
    51.         if(Network.isServer)
    52.         {
    53.             RegisterData.account.Username = username;
    54.             RegisterData.account.Password = password;
    55.             RegisterData.account.character.Position = Startpos;
    56.             _data = SerializeObject(RegisterData);
    57.             CreateXML(username + ".xml");
    58.         }
    59.     }
    60. #region
    61.     string UTF8ByteArrayToString(byte[] characters)
    62.     {
    63.         UTF8Encoding encoding = new UTF8Encoding();
    64.         string constructedString = encoding.GetString(characters);
    65.         return (constructedString);
    66.     }
    67.     byte[] StringToUTF8ByteArray(string pXmlString)
    68.     {
    69.         UTF8Encoding encoding = new UTF8Encoding();
    70.         byte[] byteArray = encoding.GetBytes(pXmlString);
    71.         return byteArray;
    72.     }
    73.     string SerializeObject(object pObject)
    74.     {
    75.         string XmlizedString = null;
    76.         MemoryStream memoryStream = new MemoryStream();
    77.         XmlSerializer xs = new XmlSerializer(typeof(AccountStructure));
    78.         XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
    79.         xs.Serialize(xmlTextWriter, pObject);
    80.         memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
    81.         XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());
    82.         return XmlizedString;
    83.     }
    84.     object DeserializeObject(string pXmlizedString)
    85.     {
    86.         XmlSerializer xs = new XmlSerializer(typeof(AccountStructure));
    87.         MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));
    88. //      XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
    89.         return xs.Deserialize(memoryStream);
    90.     }
    91.     void CreateXML(string _FileName)
    92.     {
    93.         StreamWriter writer;
    94.         FileInfo t = new FileInfo(_FileLocation+ "/Database/Accounts/" + FileName);
    95.         if(!t.Exists)
    96.         {
    97.             writer = t.CreateText();
    98.         }
    99.         else
    100.         {
    101.             t.Delete();
    102.             writer = t.CreateText();
    103.         }
    104.         writer.Write(_data);
    105.         writer.Close();
    106.         Debug.Log("File Written");
    107.     }
    108.     void LoadXML(string _FileName)
    109.     {
    110.         StreamReader r = File.OpenText(_FileLocation+ "/Database/Accounts/" + FileName);
    111.         string _info = r.ReadToEnd();
    112.         r.Close();
    113.         _data=_info;
    114.         Debug.Log("File Read");
    115.     }
    116. #endregion
    117. }
    The Errors: (5 errors, 2 warnings)
    Code (csharp):
    1. building target 5
    2. - starting compile Assets/Builds/Server/Server_Data/Managed/Assembly-CSharp.dll, for buildtarget 5
    3. ApplicationException: Unable to find a suitable compiler
    4.   at UnityEditor.Scripting.ScriptCompilers.CreateCompilerInstance (MonoIsland island, Boolean buildingForEditor, BuildTarget targetPlatform) [0x00074] in C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\Scripting\ScriptCompilers.cs:99
    5. UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, BuildTarget, BuildOptions, Boolean)
    6. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:606)
    7. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:483)
    8. UnityEditor.BuildPlayerWindow:GUIBuildButtons(Boolean, Boolean, Boolean, BuildPlatform) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1354)
    9. UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1322)
    10. UnityEditor.BuildPlayerWindow:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:999)
    11. System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception)
    12. System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    13. System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    14. UnityEditor.HostView:Invoke(String, Object) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:234)
    15. UnityEditor.HostView:Invoke(String) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:227)
    16. UnityEditor.HostView:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:120)
    17.  
    18. (Filename: C:/BuildAgent/work/812c4f5049264fad/Editor/Mono/Scripting/ScriptCompilers.cs Line: 99)
    19.  
    20. Failed to create compiler instance
    21. UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, BuildTarget, BuildOptions, Boolean)
    22. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:606)
    23. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:483)
    24. UnityEditor.BuildPlayerWindow:GUIBuildButtons(Boolean, Boolean, Boolean, BuildPlatform) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1354)
    25. UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1322)
    26. UnityEditor.BuildPlayerWindow:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:999)
    27. System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception)
    28. System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    29. System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    30. UnityEditor.HostView:Invoke(String, Object) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:234)
    31. UnityEditor.HostView:Invoke(String) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:227)
    32. UnityEditor.HostView:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:120)
    33.  
    34. [C:/BuildAgent/work/812c4f5049264fad/Editor/Src/AssetPipeline/MonoCompile.cpp line 89]
    35. (Filename: C:/BuildAgent/work/812c4f5049264fad/Editor/Mono/BuildPlayerWindow.cs Line: 606)
    36.  
    37. - Finished compile Assets/Builds/Server/Server_Data/Managed/Assembly-CSharp.dll
    38. Compilation failed because the compiler couldn't be executed!
    39.  
    40. (Filename:  Line: 84)
    41.  
    42. Error building Player because scripts had compiler errors
    43.  
    44. (Filename:  Line: -1)
    45.  
    46. - starting compile Assets/Builds/Server/Server_Data/Managed/Assembly-CSharp.dll, for buildtarget 5
    47. ApplicationException: Unable to find a suitable compiler
    48.  at UnityEditor.Scripting.ScriptCompilers.CreateCompilerInstance (MonoIsland island, Boolean buildingForEditor, BuildTarget targetPlatform) [0x00074] in C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\Scripting\ScriptCompilers.cs:99
    49. UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, BuildTarget, BuildOptions, Boolean)
    50. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:606)
    51. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:483)
    52. UnityEditor.BuildPlayerWindow:GUIBuildButtons(Boolean, Boolean, Boolean, BuildPlatform) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1354)
    53. UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1322)
    54. UnityEditor.BuildPlayerWindow:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:999)
    55. System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception)
    56. System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    57. System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    58. UnityEditor.HostView:Invoke(String, Object) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:234)
    59. UnityEditor.HostView:Invoke(String) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:227)
    60. UnityEditor.HostView:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:120)
    61.  
    62. (Filename: C:/BuildAgent/work/812c4f5049264fad/Editor/Mono/Scripting/ScriptCompilers.cs Line: 99)
    63.  
    64. Failed to create compiler instance
    65. UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, BuildTarget, BuildOptions, Boolean)
    66. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:606)
    67. UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:483)
    68. UnityEditor.BuildPlayerWindow:GUIBuildButtons(Boolean, Boolean, Boolean, BuildPlatform) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1354)
    69. UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:1322)
    70. UnityEditor.BuildPlayerWindow:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\BuildPlayerWindow.cs:999)
    71. System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception)
    72. System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    73. System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    74. UnityEditor.HostView:Invoke(String, Object) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:234)
    75. UnityEditor.HostView:Invoke(String) (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:227)
    76. UnityEditor.HostView:OnGUI() (at C:\BuildAgent\work\812c4f5049264fad\Editor\Mono\GUI\DockArea.cs:120)
    77.  
    78. [C:/BuildAgent/work/812c4f5049264fad/Editor/Src/AssetPipeline/MonoCompile.cpp line 89]
    79. (Filename: C:/BuildAgent/work/812c4f5049264fad/Editor/Mono/BuildPlayerWindow.cs Line: 606)
    80.  
    81. - Finished compile Assets/Builds/Server/Server_Data/Managed/Assembly-CSharp.dll
    82. Compilation failed because the compiler couldn't be executed!
    83.  
    84. (Filename:  Line: 84)
    85.  
    86. Unloading 1 Unused Serialized files (Serialized files now loaded: 0 / Dirty serialized files: 0)
    87.  
    88. Unloading 4 unused Assets to reduce memory usage. Loaded Objects now: 566. Operation took 32.487001 ms.
    89. System memory in use: 13.2 MB.
    90.  
    91. *** Cancelled 'Build.Player.WindowsStandalonePlayer' in 0 seconds




    If ANYBODY can please help me work this out,it'd be greatly appreciated! I've been banging my head off a wall for hours:(


    If somebody could just point me in the right direction to understanding these errors
     
    Last edited: Feb 1, 2013
  2. Erisat

    Erisat

    Joined:
    Jan 31, 2013
    Posts:
    88
    Problem solved!

    turns out i was building into the assets directory and that was the issue the whole time
     
    Last edited: Feb 2, 2013
  3. icepick912

    icepick912

    Joined:
    Jul 8, 2010
    Posts:
    58
    I just do an AssetDatabase.Refresh() after creating assets to solve my problem.