예제 #1
0
        protected string GetUniqueFileName(ISerializedFile file, Object asset, string dirPath)
        {
            string fileName;

            switch (asset)
            {
            case NamedObject named:
                fileName = named.ValidName;
                break;

            case Prefab prefab:
                fileName = prefab.GetName(file);
                break;

            case MonoBehaviour monoBehaviour:
                fileName = monoBehaviour.Name;
                break;

            default:
                fileName = asset.GetType().Name;
                break;
            }
            fileName = FileNameRegex.Replace(fileName, string.Empty);

            fileName = DirectoryUtils.GetMaxIndexName(dirPath, fileName);
            fileName = $"{fileName}.{asset.ExportExtension}";
            return(fileName);
        }
예제 #2
0
        protected string GetUniqueFileName(ISerializedFile file, Object asset, string dirPath)
        {
            string fileName;

            switch (asset)
            {
            case PrefabInstance prefab:
                fileName = prefab.GetName(file);
                break;

            case MonoBehaviour monoBehaviour:
                fileName = monoBehaviour.Name;
                break;

            case NamedObject named:
                fileName = named.ValidName;
                break;

            default:
                fileName = asset.GetType().Name;
                break;
            }
            fileName = FileUtils.FixInvalidNameCharacters(fileName);

            fileName = $"{fileName}.{GetExportExtension(asset)}";
            return(GetUniqueFileName(dirPath, fileName));
        }
예제 #3
0
        public SkipExportCollection(IAssetExporter assetExporter, Object asset)
        {
            if (assetExporter == null)
            {
                throw new ArgumentNullException(nameof(assetExporter));
            }
            if (asset == null)
            {
                throw new ArgumentNullException(nameof(asset));
            }

            AssetExporter = assetExporter;
            Name          = asset.GetType().Name;
            m_asset       = asset;
        }
예제 #4
0
        public static string GetName(uTinyRipper.Classes.Object asset)
        {
            if (asset is NamedObject no)
            {
                return(no.ValidName);
            }
            if (asset is MonoBehaviour mb && mb.IsScriptableObject)
            {
                return(mb.Name);
            }
            var nameProp = asset.GetType().GetProperty("Name");

            if (nameProp != null)
            {
                return((string)nameProp.GetValue(asset));
            }
            return("Unnamed");
        }