рдЬреЛ рд▓реЛрдЧ рдЬрд╛рд╡рд╛ RedDwarf (DarkStar) рд╕реЗ рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
рдПрдХрддрд╛ рдХреЗ рдореБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
1.
рдкреНрд▓рдЧрдЗрди рдХреЛ рдПрдХрддрд╛ (http://sourceforge.net/apps/trac/reddwarf/attachment/wiki/CommunityClientImplementations/DarkstarSharp.unitypackage)
рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рддред DarkstarSharp рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
2. рд▓рд┐рдкрд┐рдпреЛрдВ "DarkstarSharp" рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ "SimpleSgsProtocol.cs" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛,
рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг = 0x04; 0x05 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди;
3. рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ рдФрд░ рдПрдХ csharp рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ "Message.cs" рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:
using UnityEngine; using System; using System.Text; using System.Collections; public class Messages { public static byte[] encodeString(String s) { return Encoding.ASCII.GetBytes(s); } public static String decodeString(byte[] message) { return ASCIIEncoding.ASCII.GetString(message); } }
4. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ csharp рд╕реНрдХреНрд░рд┐рдкреНрдЯ "ConnectToRedDwarf.cs" рдмрдирд╛рдПрдБ:
using UnityEngine; using System; using System.Text; using System.Collections; using DarkstarSharp; public class RedDwarfClient : SimpleClientListener { private SimpleClient simpleClient; private ConnectToRedDwarf connectRD; private String host; private String username; public RedDwarfClient(String host, String username, ConnectToRedDwarf connectRD) { this.host = host; this.username = username; this.connectRD = connectRD; simpleClient = new SimpleClient(this); } public void LoggedIn(byte[] reconnectKey){ connectRD.loggedIn(); } public void LoginFailed(String reason){ connectRD.setStatus("login failed " + username+": "+reason); } public void SendMessage(String s){ try { simpleClient.WriteMessage(Messages.encodeString(s)); } catch (Exception e) { connectRD.setStatus(e.Message.ToString()); } } public void ReceivedMessage(byte[] message){ connectRD.receivedMessage(Messages.decodeString(message)); } public void Disconnected(bool forced, String message){ connectRD.disconnected(username, message); } public PasswordAuthentication GetPasswordAuthentication(){ return new PasswordAuthentication(username, ""); } public ClientChannelListener JoinedChannel(ClientChannel channel){ return null;; } public Boolean login() { Boolean result = true; try { simpleClient.login(host, 62964); } catch (Exception e) { connectRD.setStatus("cannot login" + username+": "+e.Message.ToString()); result = false; } return result; } public void LogOff(){ simpleClient.Logout(false); } } public class ConnectToRedDwarf : MonoBehaviour { private RedDwarfClient client; Boolean onConnect = false; String serverIP = "127.0.0.1"; String clientName = "Unity"; string status = "Not connection";
5. рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдореЗрдВ, рдПрдХ рдЦрд╛рд▓реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдкрд░ "ConnectToRedDwarf.cs" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлреЗрдВрдХ рджреЗрдВред рд╣рдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореЗрдиреВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдПрдбреНрд░реЗрд╕ рд▓реЙрдЧрд┐рди рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ)
рдЙрдкрд╕рдВрд╣рд╛рд░:
Message.cs рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ sisharp рдХреЗ рддрд╣рдд рдереЛрдбрд╝рд╛ рд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА "ConnectToRedDwarf.cs" рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдирд┐рдХрд╛рд▓реА рдЧрдИ рд╣реИ, рдФрд░ рдореЗрд░реА рдХрд▓реНрдкрдирд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд╣реИред
рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП
DVB рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
habrahabr.ru/post/129174 ,
habrahabr.ru/post/134812рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХреАред (c #)
Unity3d.ru/distribution/viewtopic.php?f=14&t=13799&p=100827#p100827 рдкрд░ рдЪрд░реНрдЪрд╛