Merge pull request #15 from naninunenoy/rootnamespace
add root namespace textfield at rename view
This commit is contained in:
commit
ab03e64ec3
@ -33,43 +33,43 @@ namespace AsmdefHelper.CustomCreate.Editor {
|
||||
root.Add(labelFromUXML);
|
||||
|
||||
// UI取得
|
||||
var PathTextField = root.Q<TextField>(className: "PathTextField");
|
||||
var NameTextField = root.Q<TextField>(className: "NameTextField");
|
||||
var AllowUnsafeToggle = root.Q<Toggle>(className: "AllowUnsafeToggle");
|
||||
var AutoReferencedToggle = root.Q<Toggle>(className: "AutoReferencedToggle");
|
||||
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 CreateButton = root.Q<Button>(className: "CreateButton");
|
||||
var pathTextField = root.Q<TextField>(className: "PathTextField");
|
||||
var nameTextField = root.Q<TextField>(className: "NameTextField");
|
||||
var allowUnsafeToggle = root.Q<Toggle>(className: "AllowUnsafeToggle");
|
||||
var autoReferencedToggle = root.Q<Toggle>(className: "AutoReferencedToggle");
|
||||
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 createButton = root.Q<Button>(className: "CreateButton");
|
||||
|
||||
// PathとNameの初期値
|
||||
var asset = Selection.activeObject;
|
||||
var assetPath = AssetDatabase.GetAssetPath(asset);
|
||||
var directory = string.IsNullOrWhiteSpace(assetPath) ? "Assets/" : assetPath;
|
||||
PathTextField.value = directory;
|
||||
pathTextField.value = directory;
|
||||
var defaultName = directory.Replace("Assets/", "").Replace('/', '.');
|
||||
NameTextField.value = defaultName;
|
||||
nameTextField.value = defaultName;
|
||||
|
||||
// RootNamespace が設定できるのは2020.2以降
|
||||
#if UNITY_2020_2_OR_NEWER
|
||||
RootNamespaceTextField.value = defaultName;
|
||||
rootNamespaceTextField.value = defaultName;
|
||||
#else
|
||||
root.Q<Box>(className: "Box").Remove(RootNamespaceTextField);
|
||||
root.Q<Box>(className: "Box").Remove(rootNamespaceTextField);
|
||||
#endif
|
||||
// .asmdefを作成して閉じる
|
||||
CreateButton.clickable.clicked += () => {
|
||||
var asmdefName = NameTextField.value;
|
||||
createButton.clickable.clicked += () => {
|
||||
var asmdefName = nameTextField.value;
|
||||
var asmdef = new AssemblyDefinitionJson {
|
||||
name = asmdefName,
|
||||
#if UNITY_2020_2_OR_NEWER
|
||||
rootNamespace = RootNamespaceTextField.value,
|
||||
rootNamespace = rootNamespaceTextField.value,
|
||||
#endif
|
||||
allowUnsafeCode = AllowUnsafeToggle.value,
|
||||
autoReferenced = AutoReferencedToggle.value,
|
||||
overrideReferences = OverrideReferencesToggle.value,
|
||||
noEngineReferences = NoEngineReferencesToggle.value,
|
||||
includePlatforms = IsEditorToggle.value ? new[] { "Editor" } : new string[0]
|
||||
allowUnsafeCode = allowUnsafeToggle.value,
|
||||
autoReferenced = autoReferencedToggle.value,
|
||||
overrideReferences = overrideReferencesToggle.value,
|
||||
noEngineReferences = noEngineReferencesToggle.value,
|
||||
includePlatforms = isEditorToggle.value ? new[] { "Editor" } : new string[0]
|
||||
};
|
||||
var asmdefJson = JsonUtility.ToJson(asmdef, true);
|
||||
var asmdefPath = $"{directory}/{asmdefName}.asmdef";
|
||||
|
@ -21,8 +21,8 @@ namespace AsmdefHelper.CustomCreate.Editor {
|
||||
if (extension == "asmdef") {
|
||||
var window = GetWindow<AsmdefRenameView>();
|
||||
window.titleContent = new GUIContent("AsmdefRenameView");
|
||||
window.minSize = new Vector2(200, 80);
|
||||
window.maxSize = new Vector2(2000, 80);
|
||||
window.minSize = new Vector2(200, 100);
|
||||
window.maxSize = new Vector2(2000, 100);
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,29 +44,42 @@ namespace AsmdefHelper.CustomCreate.Editor {
|
||||
root.Add(labelFromUXML);
|
||||
|
||||
// UI取得
|
||||
var PathTextField = root.Q<TextField>(className: "PathTextField");
|
||||
var NameTextField = root.Q<TextField>(className: "NameTextField");
|
||||
var CreateButton = root.Q<Button>(className: "RenameButton");
|
||||
var pathTextField = root.Q<TextField>(className: "PathTextField");
|
||||
var nameTextField = root.Q<TextField>(className: "NameTextField");
|
||||
var rootNamespaceTextField = root.Q<TextField>(className: "RootNamespaceTextField");
|
||||
var createButton = root.Q<Button>(className: "RenameButton");
|
||||
|
||||
// 既存のasmdef読み込み
|
||||
var orgText = File.ReadAllText(renameAsmdefPath);
|
||||
var asmdef = JsonUtility.FromJson<AssemblyDefinitionJson>(orgText);
|
||||
|
||||
// 既存パラメータの反映
|
||||
PathTextField.value = asmdefDirectory;
|
||||
NameTextField.value = asmdef.name;
|
||||
pathTextField.value = asmdefDirectory;
|
||||
nameTextField.value = asmdef.name;
|
||||
var asmdefNameOrg = asmdef.name;
|
||||
|
||||
// RootNamespace が設定できるのは2020.2以降
|
||||
#if UNITY_2020_2_OR_NEWER
|
||||
rootNamespaceTextField.value = asmdef.rootNamespace;
|
||||
#else
|
||||
root.Q<Box>(className: "Box").Remove(rootNamespaceTextField);
|
||||
#endif
|
||||
|
||||
// .asmdefのnameとファイル名を更新して閉じる
|
||||
CreateButton.clickable.clicked += () => {
|
||||
// nameのみ更新
|
||||
var asmdefName = NameTextField.value;
|
||||
createButton.clickable.clicked += () => {
|
||||
var asmdefName = nameTextField.value;
|
||||
asmdef.name = asmdefName;
|
||||
#if UNITY_2020_2_OR_NEWER
|
||||
asmdef.rootNamespace = rootNamespaceTextField.value;
|
||||
#endif
|
||||
var asmdefJson = JsonUtility.ToJson(asmdef, true);
|
||||
var newAsmdefPath = $"{asmdefDirectory}/{asmdefName}.asmdef";
|
||||
// 新asmdef作成
|
||||
File.WriteAllText(newAsmdefPath, asmdefJson, Encoding.UTF8);
|
||||
// 旧asmdef削除
|
||||
File.Delete(renameAsmdefPath);
|
||||
// ファイル名が変わった場合は旧asmdef削除
|
||||
if (asmdefNameOrg != asmdefName) {
|
||||
FileUtil.DeleteFileOrDirectory(renameAsmdefPath);
|
||||
}
|
||||
AssetDatabase.Refresh();
|
||||
Close();
|
||||
};
|
||||
|
@ -9,6 +9,7 @@
|
||||
<engine:Box>
|
||||
<engine:TextField class="PathTextField" label="Path" text="ASMDEF_PATH_HERE" readonly="true"/>
|
||||
<engine:TextField class="NameTextField" label="Name" text="ASMDEF_NAME_HERE"/>
|
||||
<engine:TextField label="Root Namespace" text="ROOT_NAMESPACE_HERE" class="RootNamespaceTextField" />
|
||||
<engine:Button class="RenameButton" text="Rename" />
|
||||
</engine:Box>
|
||||
</engine:UXML>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "dev.n5y.asmdefhelper",
|
||||
"displayName": "AsmdefHelper",
|
||||
"version": "0.5.0",
|
||||
"version": "0.5.1",
|
||||
"unity": "2019.3",
|
||||
"description": "Unity assembly definition utilities.",
|
||||
"keywords": ["asmdef", "editor"],
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.unity.ide.rider": "3.0.6",
|
||||
"com.unity.ide.visualstudio": "2.0.7",
|
||||
"com.unity.test-framework": "1.1.24",
|
||||
"com.unity.ide.rider": "3.0.7",
|
||||
"com.unity.ide.visualstudio": "2.0.9",
|
||||
"com.unity.test-framework": "1.1.27",
|
||||
"com.unity.modules.ai": "1.0.0",
|
||||
"com.unity.modules.androidjni": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0",
|
||||
|
@ -8,7 +8,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.rider": {
|
||||
"version": "3.0.6",
|
||||
"version": "3.0.7",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -17,7 +17,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.visualstudio": {
|
||||
"version": "2.0.7",
|
||||
"version": "2.0.9",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -26,7 +26,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.test-framework": {
|
||||
"version": "1.1.24",
|
||||
"version": "1.1.27",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
|
@ -1,2 +1,2 @@
|
||||
m_EditorVersion: 2021.1.7f1
|
||||
m_EditorVersionWithRevision: 2021.1.7f1 (d91830b65d9b)
|
||||
m_EditorVersion: 2021.1.16f1
|
||||
m_EditorVersionWithRevision: 2021.1.16f1 (5fa502fca597)
|
||||
|
@ -6,6 +6,13 @@ Unity assembly definition utilities.
|
||||
|
||||
This library solve inconvenience of assembly definition on unity.
|
||||
|
||||
### install via upm
|
||||
Please add this line to `dependencies` of `Packages/manifest.json`.
|
||||
|
||||
```
|
||||
"dev.n5y.asmdefhelper": "https://github.com/naninunenoy/AsmdefHelper.git?path=Assets"
|
||||
```
|
||||
|
||||
## Dependency Graph
|
||||
|
||||
Unity assembly definition viewer.
|
||||
@ -63,7 +70,7 @@ And you can also rename an asmdef by one action.
|
||||
___
|
||||
|
||||
## Environment
|
||||
Unity 2021.1.7f1
|
||||
Unity 2021.1.16f1
|
||||
|
||||
This library use unity internal class, so may be not work (or couse build error) depending your unity vresion.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user