Exemplo n.º 1
0
        public static void OnWillCreateAsset(string path)
        {
            if (!UnityExtensionsSettings.instance.cSharpSettings.addNamespaceToCSharpFiles)
            {
                return;
            }
            path = AssetDatabase.GetAssetPathFromTextMetaFilePath(path);
            var file = new FileInfo(path);

            if (file.Extension == CSHARP_EXTENSION)
            {
                var script   = AssetDatabase.LoadAssetAtPath <MonoScript>(path);
                var assembly = PrefabUtils.GetAssembly(script, path);
                if (assembly)
                {
                    string contents = File.ReadAllText(file.FullName);
                    if (!contents.Contains("namespace ") && contents.Contains("public class "))
                    {
                        contents = contents.Replace("public class ", $"namespace {PrefabUtils.GetNamespace(assembly, path)} {{\r\npublic class ") + "}";
                        File.WriteAllText(file.FullName, contents);
                        AssetDatabase.Refresh();
                    }
                }
            }
        }