Ejemplo n.º 1
0
        public override void RegisterAdditionalFilesToDeploy(Action <string, string> registerAdditionalFileToDeploy)
        {
            if (!Context.HasComponent <LiveLink>())
            {
                return;
            }

            var tempFile = Path.Combine(WorkingDirectory, LiveLinkUtility.LiveLinkBootstrapFileName);

            LiveLinkUtility.WriteBootstrap(tempFile, new GUID(Context.BuildConfigurationAssetGUID));
            registerAdditionalFileToDeploy(tempFile, Path.Combine(StreamingAssetsDirectory, LiveLinkUtility.LiveLinkBootstrapFileName));
        }
            public void Initialize(EditorWindow editorWindow, VisualElement rootVisualElement)
            {
                VisualTreeAsset uiAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Packages/com.unity.entities/Unity.Scenes.Editor/ClearEntitiesCacheWindow/ClearEntitiesCacheWindow.uxml");

                rootVisualElement.styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>("Packages/com.unity.entities/Unity.Scenes.Editor/ClearEntitiesCacheWindow/ClearEntitiesCacheWindow.uss"));

                m_Root = uiAsset.CloneTree();
                m_Root.style.flexGrow = 1;

                m_CancelButton          = m_Root.Query <Button>("cancel-button");
                m_CancelButton.clicked += () =>
                {
                    editorWindow.Close();
                };

                m_ClearButton          = m_Root.Query <Button>("clear-cache-button");
                m_ClearButton.clicked += () =>
                {
                    if (m_EntitySceneCacheToggle.value)
                    {
                        EntitiesCacheUtility.UpdateEntitySceneGlobalDependency();
                    }

                    if (m_LiveLinkAssetCacheToggle.value)
                    {
                        EntitiesCacheUtility.UpdateLiveLinkAssetGlobalDependency();
                    }

                    if (m_LiveLinkPlayerCacheToggle.value)
                    {
                        LiveLinkUtility.GenerateNewEditorLiveLinkCacheGUID();
                    }

                    editorWindow.Close();
                };

                m_EntitySceneCacheToggle    = m_Root.Query <Toggle>("clear-entityscene-toggle");
                m_LiveLinkAssetCacheToggle  = m_Root.Query <Toggle>("clear-livelinkassets-toggle");
                m_LiveLinkPlayerCacheToggle = m_Root.Query <Toggle>("clear-livelinkplayer-toggle");


                rootVisualElement.Add(m_Root);
            }
        void RequestSessionHandshake(MessageEventArgs args)
        {
            var handshake = new LiveLinkHandshake(LiveLinkUtility.GetEditorLiveLinkId(), LiveLinkUtility.LiveLinkCacheGUID);

            m_Connection.Send(LiveLinkMsg.EditorResponseHandshakeLiveLink, handshake, args.playerId);
        }
Ejemplo n.º 4
0
 void RequestSessionHandshake(MessageEventArgs args)
 {
     m_Connection.Send(LiveLinkMsg.EditorResponseHandshakeLiveLink, LiveLinkUtility.GetEditorLiveLinkId(), args.playerId);
 }
        public override BuildStepResult RunBuildStep(BuildContext context)
        {
            m_TempFileTracker = new TemporaryFileTracker();
            var generalSettings = GetRequiredComponent <GeneralSettings>(context);
            var profile         = GetRequiredComponent <ClassicBuildProfile>(context);
            var sceneList       = GetRequiredComponent <SceneList>(context);

            if (profile.Target <= 0)
            {
                return(BuildStepResult.Failure(this, $"Invalid build target '{profile.Target.ToString()}'."));
            }

            if (profile.Target != EditorUserBuildSettings.activeBuildTarget)
            {
                return(BuildStepResult.Failure(this, $"{nameof(EditorUserBuildSettings.activeBuildTarget)} must be switched before {nameof(BuildStepBuildClassicLiveLink)} step."));
            }

            //any initial scenes that cannot be live linked must be added to the scenes list
            var embeddedScenes = new List <string>(sceneList.GetScenePathsToLoad().Where(path => !SceneImporterData.CanLiveLinkScene(path)));

            //if none of the startup scenes are embedded, add empty scene
            if (embeddedScenes.Count == 0)
            {
                embeddedScenes.Add(k_EmptyScenePath);
            }

            //add any additional scenes that cannot be live linked
            foreach (var path in sceneList.GetScenePathsForBuild())
            {
                if (!SceneImporterData.CanLiveLinkScene(path) && !embeddedScenes.Contains(path))
                {
                    embeddedScenes.Add(path);
                }
            }

            var outputPath = this.GetOutputBuildDirectory(context);

            if (!Directory.Exists(outputPath))
            {
                Directory.CreateDirectory(outputPath);
            }

            var buildPlayerOptions = new BuildPlayerOptions
            {
                scenes           = embeddedScenes.ToArray(),
                target           = profile.Target,
                locationPathName = Path.Combine(outputPath, generalSettings.ProductName + profile.GetExecutableExtension()),
                targetGroup      = UnityEditor.BuildPipeline.GetBuildTargetGroup(profile.Target),
                options          = BuildOptions.Development | BuildOptions.ConnectToHost
            };

            var sourceBuild = GetOptionalComponent <SourceBuildConfiguration>(context);

            if (sourceBuild.Enabled)
            {
                buildPlayerOptions.options |= BuildOptions.InstallInBuildFolder;
            }

            if (profile.Configuration == BuildType.Debug)
            {
                buildPlayerOptions.options |= BuildOptions.AllowDebugging;
            }

            if (UseAutoRunPlayer(context))
            {
                UnityEngine.Debug.Log($"Using BuildOptions.AutoRunPlayer, since RunStep is not provided for {profile.Target}");
                buildPlayerOptions.options |= BuildOptions.AutoRunPlayer;
            }

            var settings = BuildContextInternals.GetBuildConfiguration(context);

            if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(settings, out var guidString, out long _))
            {
                var guid = new GUID(guidString);
                var path = m_TempFileTracker.TrackFile(k_BootstrapPath);
                LiveLinkUtility.WriteBootstrap(path, guid);
            }

            var report = UnityEditor.BuildPipeline.BuildPlayer(buildPlayerOptions);
            var result = new BuildStepResult(this, report);

            context.SetValue(report);
            return(result);
        }