Ejemplo n.º 1
0
        protected override void Logic(ValidationTarget target)
        {
            var scenes = target.GetScenes();

            // 全てリアルタイムであればlightmapの検証は不要
            var staticRenderersCount = target.GetAllObjects()
                                       .Where(IsWrittenToLightmap)
                                       .SelectMany(obj => obj.GetComponents <Renderer>())
                                       .Count();

            if (staticRenderersCount == 0)
            {
                return;
            }

            foreach (var scene in scenes)
            {
                LogicForScene(scene);
            }

            if (IsLightMapAutoGenerated())
            {
                AddIssue(new Issue(
                             null,
                             IssueLevel.Error,
                             LocalizedMessage.Get("LightmapSizeLimitRule.MustLightmapBakingManually"),
                             LocalizedMessage.Get("LightmapSizeLimitRule.MustLightmapBakingManually.Solution")));
            }
        }
        protected override void Logic(ValidationTarget target)
        {
            var loadedScenes = new HashSet <Scene>(GetLoadedScenes());
            var targetScenes = target.GetScenes();

            foreach (var scene in targetScenes)
            {
                loadedScenes.Remove(scene);
            }

            foreach (var unrelatedScene in loadedScenes)
            {
                var message     = LocalizedMessage.Get("SceneStructureRule.UnrelatedSceneDetected", unrelatedScene.name);
                var solution    = LocalizedMessage.Get("SceneStructureRule.UnrelatedSceneDetected.Solution");
                var solutionURL = LocalizedMessage.Get("SceneStructureRule.UnrelatedSceneDetected.SolutionURL");

                var sceneAsset = AssetDatabase.LoadAssetAtPath <SceneAsset>(unrelatedScene.path);
                AddIssue(new Issue(sceneAsset, IssueLevel.Error, message, solution, solutionURL));
            }

            foreach (var targetScene in targetScenes)
            {
                ValidateRootObject(target, targetScene);
            }
        }