예제 #1
0
        public virtual void Connect(ConnectionConfig config)
        {
            if (config is ReceptionistConfig)
            {
                if (UseDynamicId)
                {
                    WorkerId = GenerateDynamicWorkerId();
                }

                Connection = ConnectionUtility.ConnectToSpatial((ReceptionistConfig)config, GetWorkerType,
                                                                WorkerId);
            }
            else if (config is LocatorConfig)
            {
                Connection = ConnectionUtility.LocatorConnectToSpatial((LocatorConfig)config, GetWorkerType);
            }
            else
            {
                throw new InvalidConfigurationException($"Invalid connection config was provided: '{config}' Only" +
                                                        "ReceptionistConfig and LocatorConfig are supported.");
            }

            Application.quitting += () =>
            {
                ConnectionUtility.Disconnect(Connection);
                Connection = null;
            };

            View.Connect();
        }
예제 #2
0
파일: Worker.cs 프로젝트: PushoN/UnityGDK
 public void Dispose()
 {
     EntityMapping.Clear();
     World?.Dispose();
     World = null;
     OnDisconnect?.Invoke(this);
     ConnectionUtility.Disconnect(Connection);
     Connection?.Dispose();
     Connection = null;
 }