protected IEnumerator AddProjects(string[] projectNames)
        {
            UnityProjectHost host = new UnityProjectHost("test server id", "test server name", new[] { "endpoint 1" }, "test accessToken", false);
            var projectList       = new List <Project>();//UnityProjectHost host, string projectId, string projectName

            for (int i = 0; i < projectNames.Length; ++i)
            {
                var project = new Project(new UnityProject(host, i.ToString(), $"Project {projectNames[i]} {i}"));
                project.lastPublished.AddMinutes(i);
                projectList.Add(project);
            }
            ReflectPipelineFactory.projectsRefreshCompleted.Invoke(projectList);
            ReflectPipelineFactory.projectsRefreshCompleted = new ProjectListerSettings.ProjectsEvents();
            UIStateManager.current.ForceSendSessionStateChangedEvent();
            yield return(WaitAFrame());
        }
        protected IEnumerator AddProjects(string[] projectNames)
        {
            UnityProjectHost host = new UnityProjectHost("test server id", "test server name", new[] { "endpoint 1" }, "test accessToken", false);
            var projectList       = new List <Project>();//UnityProjectHost host, string projectId, string projectName

            for (int i = 0; i < projectNames.Length; ++i)
            {
                var project = new Project(new UnityProject(host, i.ToString(), $"Project {projectNames[i]} {i}"));
                project.lastPublished.AddMinutes(i);
                projectList.Add(project);
            }
            ReflectProjectsManager.projectsRefreshCompleted.Invoke(projectList);
            ReflectProjectsManager.projectsRefreshCompleted = new ProjectListerSettings.ProjectsEvents();
            // Dispatcher.Dispatch(SetProjectRoomAction.From(projectList.Cast<IProjectRoom>().ToArray()));
            yield return(WaitAFrame());
        }
Exemple #3
0
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        var host = ScriptableObject.CreateInstance <HostSO>();

        host.host = new HostDummy();
        var realProject = property.serializedObject.targetObject as ProjectDrawerUIE.ProjectSO;
        var flag        = label.text.Equals("Host");

        if (realProject && label.text.Equals("Host"))
        {
            try
            {
                UnityProjectHost realHost = realProject.project.Host;
                host.host.ServerId   = realHost.ServerId;
                host.host.ServerName = realHost.ServerName;
                m_valid = true;
            }
            catch (Exception)
            {
                m_valid = false;
            }
        }
        else
        {
            if (realProject && label.text.StartsWith("Element"))
            {
                try
                {
                    var index = int.Parse(label.text.Split(' ')[1]);
                    UnityProjectHost realHost = realProject.project.Host;
                    host.host.ServerId   = realHost.ServerId;
                    host.host.ServerName = realHost.ServerName;
                    m_valid = true;
                }
                catch (Exception)
                {
                    m_valid = false;
                }
            }
        }
        SerializedObject serializedObject = new UnityEditor.SerializedObject(host);

        SerializedProperty serializedPropertyProject = serializedObject.FindProperty("host");

        EditorGUI.BeginProperty(position, label, property);

        EditorGUI.LabelField(new Rect(position.x, position.y, position.width, 16), label);

        if (m_valid)
        {
            var serverIdRect   = new Rect(position.x, position.y + 18, position.width, 16);
            var serverNameRect = new Rect(position.x, position.y + 36, position.width, 16);

            EditorGUI.indentLevel++;

            EditorGUI.PropertyField(serverIdRect, serializedPropertyProject.FindPropertyRelative("ServerId"));
            EditorGUI.PropertyField(serverNameRect, serializedPropertyProject.FindPropertyRelative("ServerName"));

            EditorGUI.indentLevel--;
        }
        EditorGUI.EndProperty();

        ScriptableObject.DestroyImmediate(host);
    }