add rootNamespace property

This commit is contained in:
naninunenoy 2020-12-16 23:01:15 +09:00
parent 0bb5c8d293
commit 89d8712bb5
3 changed files with 19 additions and 3 deletions

View File

@ -37,8 +37,10 @@ namespace AsmdefHelper.CustomCreate.Editor {
var NameTextField = root.Q<TextField>(className: "NameTextField"); var NameTextField = root.Q<TextField>(className: "NameTextField");
var AllowUnsafeToggle = root.Q<Toggle>(className: "AllowUnsafeToggle"); var AllowUnsafeToggle = root.Q<Toggle>(className: "AllowUnsafeToggle");
var AutoReferencedToggle = root.Q<Toggle>(className: "AutoReferencedToggle"); var AutoReferencedToggle = root.Q<Toggle>(className: "AutoReferencedToggle");
var OverrideReferencesToggle = root.Q<Toggle>(className: "OverrideReferencesToggle");
var NoEngineReferencesToggle = root.Q<Toggle>(className: "NoEngineReferencesToggle"); var NoEngineReferencesToggle = root.Q<Toggle>(className: "NoEngineReferencesToggle");
var OverrideReferencesToggle = root.Q<Toggle>(className: "OverrideReferencesToggle");
var RootNamespaceTextField = root.Q<TextField>(className: "RootNamespaceTextField");
var IsEditorToggle = root.Q<Toggle>(className: "IsEditorToggle"); var IsEditorToggle = root.Q<Toggle>(className: "IsEditorToggle");
var CreateButton = root.Q<Button>(className: "CreateButton"); var CreateButton = root.Q<Button>(className: "CreateButton");
@ -47,8 +49,15 @@ namespace AsmdefHelper.CustomCreate.Editor {
var assetPath = AssetDatabase.GetAssetPath(asset); var assetPath = AssetDatabase.GetAssetPath(asset);
var directory = string.IsNullOrWhiteSpace(assetPath) ? "Assets/" : assetPath; var directory = string.IsNullOrWhiteSpace(assetPath) ? "Assets/" : assetPath;
PathTextField.value = directory; PathTextField.value = directory;
NameTextField.value = directory.Replace("Assets/", "").Replace('/', '.'); var defaultName = directory.Replace("Assets/", "").Replace('/', '.');
NameTextField.value = defaultName;
// RootNamespace が設定できるのは2020.2以降
#if UNITY_2020_2_OR_NEWER
RootNamespaceTextField.value = defaultName;
#else
root.Remove(RootNamespaceTextField);
#endif
// .asmdefを作成して閉じる // .asmdefを作成して閉じる
CreateButton.clickable.clicked += () => { CreateButton.clickable.clicked += () => {
var asmdefName = NameTextField.value; var asmdefName = NameTextField.value;
@ -60,6 +69,9 @@ namespace AsmdefHelper.CustomCreate.Editor {
noEngineReferences = NoEngineReferencesToggle.value, noEngineReferences = NoEngineReferencesToggle.value,
includePlatforms = IsEditorToggle.value ? new[] { "Editor" } : new string[0] includePlatforms = IsEditorToggle.value ? new[] { "Editor" } : new string[0]
}; };
#if UNITY_2020_2_OR_NEWER
asmdef.rootNamespace = RootNamespaceTextField.value;
#endif
var asmdefJson = JsonUtility.ToJson(asmdef, true); var asmdefJson = JsonUtility.ToJson(asmdef, true);
var asmdefPath = $"{directory}/{asmdefName}.asmdef"; var asmdefPath = $"{directory}/{asmdefName}.asmdef";
File.WriteAllText(asmdefPath, asmdefJson, Encoding.UTF8); File.WriteAllText(asmdefPath, asmdefJson, Encoding.UTF8);

View File

@ -11,8 +11,9 @@
<engine:TextField class="NameTextField" label="Name" text="ASMDEF_NAME_HERE"/> <engine:TextField class="NameTextField" label="Name" text="ASMDEF_NAME_HERE"/>
<engine:Toggle class="AllowUnsafeToggle" label="Allow 'unsafe' Code" value="false"/> <engine:Toggle class="AllowUnsafeToggle" label="Allow 'unsafe' Code" value="false"/>
<engine:Toggle class="AutoReferencedToggle" label="Auto Referenced" value="true"/> <engine:Toggle class="AutoReferencedToggle" label="Auto Referenced" value="true"/>
<engine:Toggle class="OverrideReferencesToggle" label="Override Referenced" value="false"/>
<engine:Toggle class="NoEngineReferencesToggle" label="No Engine References" value="false"/> <engine:Toggle class="NoEngineReferencesToggle" label="No Engine References" value="false"/>
<engine:Toggle class="OverrideReferencesToggle" label="Override Referenced" value="false"/>
<engine:TextField class="RootNamespaceTextField" label="Root Namespace" text="ROOT_NAMESPACE_HERE"/>
<engine:Toggle class="IsEditorToggle" label="Is Editor" value="false"/> <engine:Toggle class="IsEditorToggle" label="Is Editor" value="false"/>
<engine:Button class="CreateButton" text="Create" /> <engine:Button class="CreateButton" text="Create" />
</engine:Box> </engine:Box>

View File

@ -1,6 +1,9 @@
namespace AsmdefHelper.CustomCreate.Editor { namespace AsmdefHelper.CustomCreate.Editor {
public class AssemblyDefinitionJson { public class AssemblyDefinitionJson {
public string name = string.Empty; public string name = string.Empty;
#if UNITY_2020_2_OR_NEWER
public string rootNamespace = string.Empty;
#endif
public string[] references = new string[0]; public string[] references = new string[0];
public string[] includePlatforms = new string[0]; public string[] includePlatforms = new string[0];
public string[] excludePlatforms = new string[0]; public string[] excludePlatforms = new string[0];