示例#1
0
        public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
        {
            using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet())
            {
                if (occurrence is UnityAssetOccurrence assetOccurrence && !assetOccurrence.SourceFile.GetLocation().IsAsset())
                {
                    using (ReadLockCookie.Create())
                    {
                        var solution  = occurrence.GetSolution();
                        var processor = solution.GetComponent <AssetHierarchyProcessor>();
                        var consumer  = new UnityScenePathGameObjectConsumer();
                        processor.ProcessSceneHierarchyFromComponentToRoot(assetOccurrence.OwningElementLocation, consumer, true, true);
                        string name = "...";
                        if (consumer.NameParts.Count > 0)
                        {
                            name = string.Join("\\", consumer.NameParts);
                        }

                        return(CreateModel(name));
                    }
                }
            }

            return(EmptyModel());
        }