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