// [ContextMenu("CreateDll")] public void CreateDll() { var filename = FilenameIncludeNamespace ? $"{Namespace}.{Filename}" : Filename; var filePath = EditorUtility.SaveFilePanel("Save Dll", Directory, filename, "dll"); VariableGenerator.CreateDll(Filename, filePath, Namespace, Types); }
public string GenerateField(FieldInfo fi) { var variableType = fi.FieldType.GetGenericArguments()[0]; if (ShouldGenerateVariableInterface) { GenerateVariableInterface(); } var stringBuilder = new StringBuilder(); stringBuilder.Append("[UnityEngine.SerializeReference, SerializeReferenceButton]"); stringBuilder.Append(" "); stringBuilder.AppendLine($"public {VariableInterfaceNamespace}.{variableType.Name}{VariablePropertyNameSuffix} {fi.Name};"); return(stringBuilder.ToString()); void GenerateVariableInterface() { var directory = Path.GetDirectoryName(AssetDatabase.GetAssetPath(Generator)) + "/" + VariableInterfaceDirectory; if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var filepath = $"{directory}/{variableType.Name}{VariablePropertyNameSuffix}.cs"; if (!File.Exists(filepath) || File.ReadLines(filepath).FirstOrDefault() == _HEAD_LINE) { using (var writer = new StreamWriter(filepath)) { writer.WriteLine(_HEAD_LINE); writer.WriteLine(VariableGenerator.NamespaceBegin(VariableInterfaceNamespace)); writer.WriteLine(VariableGenerator.CreateInterface(variableType, VariablePropertyNameSuffix)); writer.WriteLine(VariableGenerator.CreateClass(variableType, typeof(CustomVariableProperty <>), VariablePropertyNameSuffix)); writer.WriteLine(VariableGenerator.CreateClass(variableType, typeof(ComponentVariableProperty <>), VariablePropertyNameSuffix)); writer.WriteLine(VariableGenerator.CreateClass(variableType, typeof(NodeVariableProperty <>), VariablePropertyNameSuffix)); writer.WriteLine(VariableGenerator.CreateClass(variableType, typeof(ScriptableObjectVariableProperty <>), VariablePropertyNameSuffix)); writer.WriteLine(VariableGenerator.NamespaceEnd()); } } } }
public void CreateClassesScript() { var filePath = SaveFilePanel("Save Script", Directory, $"{Filename}-Classes", "cs"); VariableGenerator.CreateScriptClassOnly(filePath, Namespace, Types); }
public void CreateInterfaceScript() { var filePath = SaveFilePanel("Save Script", Directory, $"{Filename}-Interface", "cs"); VariableGenerator.CreateScriptInterfaceOnly(filePath, Namespace, Types); }
public void CreateScript() { var filePath = SaveFilePanel("Save Script", Directory, Filename, "cs"); VariableGenerator.CreateScript(filePath, Namespace, Types); }