Compare commits

..

44 Commits
0.3 ... master

Author SHA1 Message Date
63e57636c0 removed demo scene 2025-01-28 18:26:16 +00:00
Nakano Yosuke
d0a17c5bbd
Merge pull request #18 from naninunenoy/develop
move sample scene
2022-08-24 00:15:11 +09:00
naninunenoy
553b327d4d v0.5.3 2022-08-24 00:13:37 +09:00
naninunenoy
c8f308c41a move scene file 2022-08-24 00:12:37 +09:00
Nakano Yosuke
29e21dbbe2
Merge pull request #17 from basstal/master
compatible with unity 2019
2022-08-24 00:07:11 +09:00
basstal
4cfe8c73a0 compatible with unity 2019 2022-08-23 15:35:13 +08:00
Nakano Yosuke
fb2b3228c0
Merge pull request #16 from naninunenoy/develop
Fix custom create window size
2022-01-19 17:56:53 +09:00
naninunenoy
2246d8f136 update REDME 2022-01-19 17:54:18 +09:00
naninunenoy
1dafd474c2 version up 2022-01-19 17:53:34 +09:00
naninunenoy
62598385de fix editor windows size 2022-01-19 17:52:47 +09:00
naninunenoy
a414349cda unity 2021.2.8 2022-01-19 17:51:13 +09:00
Nakano Yosuke
ab03e64ec3
Merge pull request #15 from naninunenoy/rootnamespace
add root namespace textfield at rename view
2021-10-13 02:10:51 +09:00
naninunenoy
b4824a5490 fix package.json 2021-10-13 01:51:55 +09:00
naninunenoy
ccf420747b fix README.md 2021-10-13 01:50:37 +09:00
naninunenoy
7f311b9000 root namespaceしか変わってない場合はファイルを消さない 2021-10-13 01:41:33 +09:00
naninunenoy
7669aa0212 fix var name 2021-10-13 01:27:03 +09:00
naninunenoy
1bfa4d5b41 rename時にRootnamespaceも変更できるように 2021-10-13 01:24:51 +09:00
naninunenoy
6e87411074 unity 2021.1.16 2021-10-13 01:11:35 +09:00
Nakano Yosuke
c9a893fdde
Update package.json 2021-05-22 17:30:50 +09:00
Nakano Yosuke
db82661e78
Merge pull request #12 from naninunenoy/unity2021
support Unity2021
2021-05-22 17:20:50 +09:00
naninunenoy
40b208a7c5 update package.json 2021-05-22 17:20:35 +09:00
naninunenoy
2d46806ca2 fix README 2021-05-22 17:17:29 +09:00
naninunenoy
e2ea2241e5 remove SyncSolution 2021-05-22 17:15:20 +09:00
naninunenoy
455f64f72c update to 2021.1.7f1 2021-05-22 17:01:54 +09:00
Nakano Yosuke
95fa00c675
Merge pull request #8 from naninunenoy/2020.2
RootNamespace
2020-12-16 23:24:51 +09:00
naninunenoy
d470c63fee release 0.4.1 2020-12-16 23:16:45 +09:00
naninunenoy
a2b3bc90a7 fix to remve text fileld in old unity 2020-12-16 23:12:10 +09:00
naninunenoy
89d8712bb5 add rootNamespace property 2020-12-16 23:01:15 +09:00
naninunenoy
0bb5c8d293 upgrade to 2020.2 2020-12-16 22:49:18 +09:00
naninunenoy
42fbb35553 release 0.4.0 (filter UI #4)
(cherry picked from commit 689a3143891463aadb83e31aa8d252588bc74548)
2020-12-01 01:28:15 +09:00
naninunenoy
45af1a7d81 recactoring toggle dictionaly 2020-12-01 01:02:13 +09:00
naninunenoy
6a2cbd6dd3 toggle group in box 2020-11-30 02:37:56 +09:00
naninunenoy
9a8772967a on/off by top domain toggle 2020-11-30 01:40:16 +09:00
naninunenoy
35961651b3 fix test namespace 2020-11-30 00:30:24 +09:00
naninunenoy
2d13dc20ce move test directory 2020-11-30 00:25:55 +09:00
naninunenoy
363ed7914f asmdef name domain separator class 2020-11-30 00:21:12 +09:00
naninunenoy
5e63d32268 接続数を整列に加味 2020-11-26 23:25:03 +09:00
naninunenoy
ad5ad99975 edge visibility 2020-11-26 23:06:23 +09:00
naninunenoy
52f2856307 node visibility 2020-11-26 22:16:00 +09:00
naninunenoy
6e5241ed2e check box を左に 2020-11-26 01:43:55 +09:00
naninunenoy
c6aafef7ae asmdef 一覧の Toggle 2020-11-26 00:41:49 +09:00
naninunenoy
9c0e3deac3 dependency count 2020-11-25 22:57:17 +09:00
naninunenoy
569f645220 ContentDragger 2020-11-25 22:48:19 +09:00
naninunenoy
b798d5a3ca order by asmdef name 2020-11-25 22:41:37 +09:00
90 changed files with 2608 additions and 593 deletions

View File

@ -11,8 +11,8 @@ namespace AsmdefHelper.CustomCreate.Editor {
public static void ShowWindow() {
var window = GetWindow<AsmdefCustomCreateView>();
window.titleContent = new GUIContent("AsmdefCustomCreateView");
window.minSize = new Vector2(200, 180);
window.maxSize = new Vector2(2000, 180);
window.minSize = new Vector2(200, 200);
window.maxSize = new Vector2(2000, 2000);
}
public void OnEnable() {
@ -29,36 +29,51 @@ namespace AsmdefHelper.CustomCreate.Editor {
"Packages/dev.n5y.asmdefhelper/AsmdefHelper/CustomCreate/Editor/AsmdefCustomCreateView.uxml");
}
#if UNITY_2020_1_OR_NEWER
VisualElement labelFromUXML = visualTree.Instantiate();
#else
VisualElement labelFromUXML = visualTree.CloneTree();
#endif
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 OverrideReferencesToggle = root.Q<Toggle>(className: "OverrideReferencesToggle");
var NoEngineReferencesToggle = root.Q<Toggle>(className: "NoEngineReferencesToggle");
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;
NameTextField.value = directory.Replace("Assets/", "").Replace('/', '.');
pathTextField.value = directory;
var defaultName = directory.Replace("Assets/", "").Replace('/', '.');
nameTextField.value = defaultName;
// RootNamespace が設定できるのは2020.2以降
#if UNITY_2020_2_OR_NEWER
rootNamespaceTextField.value = defaultName;
#else
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,
allowUnsafeCode = AllowUnsafeToggle.value,
autoReferenced = AutoReferencedToggle.value,
overrideReferences = OverrideReferencesToggle.value,
noEngineReferences = NoEngineReferencesToggle.value,
includePlatforms = IsEditorToggle.value ? new[] { "Editor" } : new string[0]
#if UNITY_2020_2_OR_NEWER
rootNamespace = rootNamespaceTextField.value,
#endif
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";

View File

@ -6,13 +6,14 @@
xsi:noNamespaceSchemaLocation="../../../../UIElementsSchema/UIElements.xsd"
>
<engine:Label class="AsmdefInfo" text="Input your asmdef info"/>
<engine:Box>
<engine:Box class="Box">
<engine:TextField class="PathTextField" label="Path" text="ASMDEF_PATH_HERE" readonly="true"/>
<engine:TextField class="NameTextField" label="Name" text="ASMDEF_NAME_HERE"/>
<engine:Toggle class="AllowUnsafeToggle" label="Allow 'unsafe' Code" value="false"/>
<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="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:Button class="CreateButton" text="Create" />
</engine:Box>

View File

@ -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);
}
}
@ -40,33 +40,50 @@ namespace AsmdefHelper.CustomCreate.Editor {
"Packages/dev.n5y.asmdefhelper/AsmdefHelper/CustomCreate/Editor/AsmdefRenameView.uxml");
}
#if UNITY_2020_1_OR_NEWER
VisualElement labelFromUXML = visualTree.Instantiate();
#else
VisualElement labelFromUXML = visualTree.CloneTree();
#endif
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();
};

View File

@ -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>

View File

@ -1,6 +1,9 @@
namespace AsmdefHelper.CustomCreate.Editor {
public class AssemblyDefinitionJson {
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[] includePlatforms = new string[0];
public string[] excludePlatforms = new string[0];

View File

@ -1,10 +1,11 @@
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEditor;
using UnityEditor.Compilation;
namespace AsmdefHelper.DependencyGraph.Editor {
public class AsmdefGraphEditorWindow : EditorWindow {
public class AsmdefGraphEditorWindow : EditorWindow, IToggleCheckDelegate {
static AsmdefSelectionView selectionWindow;
AsmdefGraphView graphView;
[MenuItem("AsmdefHelper/Open DependencyGraph", priority = 2000)]
public static void Open() {
GetWindow<AsmdefGraphEditorWindow>("Asmdef Dependency");
@ -14,10 +15,26 @@ namespace AsmdefHelper.DependencyGraph.Editor {
// .asmdefをすべて取得
var asmdefs = CompilationPipeline.GetAssemblies();
// viewの作成
var graphView = new AsmdefGraphView(asmdefs) {
graphView = new AsmdefGraphView(asmdefs) {
style = { flexGrow = 1 }
};
rootVisualElement.Add(graphView);
// 選択ウィンドウも作成
selectionWindow = GetWindow<AsmdefSelectionView>("Asmdef Selection");
selectionWindow.SetAsmdef(asmdefs, this);
}
// 片方を閉じる
void OnDestroy() {
if (selectionWindow != null) {
selectionWindow.Close();
}
selectionWindow = null;
}
void IToggleCheckDelegate.OnSelectionChanged(string label, bool isChecked) {
graphView.SetNodeVisibility(label, isChecked);
}
}
}

View File

@ -10,6 +10,7 @@ using UnityEngine.UIElements;
namespace AsmdefHelper.DependencyGraph.Editor {
public sealed class AsmdefGraphView : GraphView {
readonly Dictionary<string, IAsmdefNodeView> asmdefNodeDict;
public AsmdefGraphView(IEnumerable<Assembly> assemblies) {
var assemblyArr = assemblies.ToArray();
// zoom可能に
@ -18,8 +19,10 @@ namespace AsmdefHelper.DependencyGraph.Editor {
Insert(0, new GridBackground());
// ドラッグによる移動可能に
this.AddManipulator(new SelectionDragger());
// ドラッグで描画範囲を動かせるように
this.AddManipulator(new ContentDragger());
// ノードの追加
var asmdefNodeDict = new Dictionary<string, IAsmdefNodeView>();
asmdefNodeDict = new Dictionary<string, IAsmdefNodeView>();
foreach (var asm in assemblyArr) {
var node = new AsmdefNode(asm.name, contentContainer);
AddElement(node);
@ -57,6 +60,14 @@ namespace AsmdefHelper.DependencyGraph.Editor {
}
}
// Portに接続数を追記
foreach (var dep in dependencies) {
if (asmdefNodeDict.TryGetValue(dep.Profile.Name, out var node)) {
node.LeftPort.Label = $"RefBy({dep.Sources.Count})";
node.RightPort.Label = $"RefTo({dep.Destinations.Count})";
}
}
// ノードの場所を整列
var sortStrategy = new AlignSortStrategy(AlignParam.Default(), Vector2.zero);
var sortedNode = sortStrategy.Sort(dependencies);
@ -67,6 +78,12 @@ namespace AsmdefHelper.DependencyGraph.Editor {
}
}
public void SetNodeVisibility(string nodeName, bool visible_) {
if (asmdefNodeDict.TryGetValue(nodeName, out var node)) {
node.Visibility = visible_;
}
}
public override List<Port> GetCompatiblePorts(Port startAnchor, NodeAdapter nodeAdapter) {
return ports.ToList();
}

View File

@ -4,17 +4,34 @@ using UnityEngine.UIElements;
namespace AsmdefHelper.DependencyGraph.Editor {
public class AsmdefNode : UiElementsNodeView, IAsmdefNodeView {
public IPort LeftPort { get; }
public IPort RightPort { get; }
readonly GraphViewPort leftPort;
readonly GraphViewPort rightPort;
public IPort LeftPort => leftPort;
public IPort RightPort => rightPort;
public AsmdefNode(string nodeName, VisualElement parentContentContainer) {
Label = nodeName;
LeftPort = new GraphViewPort(parentContentContainer, Direction.Input) { Label = "Ref By" };
leftPort = new GraphViewPort(parentContentContainer, Direction.Input) { Label = "Ref By" };
inputContainer.Add(LeftPort as Port); // as right side
RightPort = new GraphViewPort(parentContentContainer, Direction.Output) { Label = "Ref To" };
rightPort = new GraphViewPort(parentContentContainer, Direction.Output) { Label = "Ref To" };
outputContainer.Add(RightPort as Port); // as left side
}
public override bool Visibility {
get => base.Visibility;
set {
base.Visibility = value;
// right(output)
foreach (var edge in rightPort.connections) {
edge.visible = edge.input.node.visible & visible;
}
// left(input)
foreach (var edge in leftPort.connections) {
edge.visible = edge.output.node.visible & visible;
}
}
}
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7f68a5c3b1e9b8b4aa69caf9b0838471
guid: 686371b55f14bdb4ca1a0ee236361071
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,124 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using UnityEditor;
using UnityEditor.Compilation;
using UnityEngine;
using UnityEngine.UIElements;
namespace AsmdefHelper.DependencyGraph.Editor {
public class AsmdefSelectionView : EditorWindow {
const int toggleCount = 1000;
static EditorWindow graphWindow;
readonly ToggleDict groupMasterToggleDict = new ToggleDict();
readonly ToggleDict toggleDict = new ToggleDict();
IToggleCheckDelegate toggleDelegate;
public void OnEnable() {
graphWindow = GetWindow<AsmdefGraphEditorWindow>();
// Each editor window contains a root VisualElement object
VisualElement root = rootVisualElement;
// Import UXML
var visualTree =
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(
"Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.uxml");
if (visualTree == null) {
visualTree =
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(
"Packages/dev.n5y.asmdefhelper/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.uxml");
}
#if UNITY_2020_1_OR_NEWER
VisualElement labelFromUXML = visualTree.Instantiate();
#else
VisualElement labelFromUXML = visualTree.CloneTree();
#endif
root.Add(labelFromUXML);
}
public void SetAsmdef(Assembly[] assemblies, IToggleCheckDelegate toggleDelegate_) {
var sortedAssemblies = assemblies.OrderBy(x => x.name).ToArray();
var scrollView = rootVisualElement.Q<ScrollView>(className: "ScrollView");
toggleDict.Clear();
for (var i = 0; i < toggleCount; i++) {
var toggle = rootVisualElement.Q<Toggle>(className: $"toggle{i}");
if (i < sortedAssemblies.Length) {
var assemblyName = sortedAssemblies[i].name;
toggle.text = assemblyName;
toggle.value = true;
toggleDict.Add(assemblyName, new UiElementToggle(toggle));
} else {
scrollView.Remove(toggle);
}
}
// グループに分ける
var group = new DomainGroup();
group.Create(sortedAssemblies.Select(x => x.name));
var tops = group.GetTopDomainsWithSomeSubDomains().ToArray();
foreach (var top in tops) {
var topToggle = new Toggle { text = top, value = true};
var slaveToggles = new List<IToggle>();
Toggle firstToggle = null;
var domains = group.GetSubDomains(top);
foreach (var domain in domains) {
var isLast = domains.Last() == domain;
if (toggleDict.TryGetToggle(domain.FullName, out var toggle)) {
var keisen = isLast ? "└" : "├";
toggle.Name = domain.HasSubDomain() ? $"{keisen} {domain.SubDomain}" : toggle.Name;
slaveToggles.Add(toggle);
if (firstToggle == null && toggle is UiElementToggle y) {
firstToggle = y.Toggle;
}
}
}
var toggleGroup = new ToggleGroup(new UiElementToggle(topToggle), slaveToggles);
if (firstToggle != null) {
var index = scrollView.IndexOf(firstToggle);
// グループに属する toggle は box に入れる
var box = new Box();
scrollView.Insert(index, topToggle);
scrollView.Insert(index + 1, box);
foreach (var slaveToggle in slaveToggles) {
if (slaveToggle is UiElementToggle x) {
box.Add(x.Toggle);
}
}
}
groupMasterToggleDict.Add(top, toggleGroup);
}
toggleDelegate = toggleDelegate_;
}
void OnGUI() {
// toggle の更新を監視 (onValueChangedが無さそう)
// ToggleGroup の長
var updatedGroups = groupMasterToggleDict.ScanUpdate().ToArray();
groupMasterToggleDict.OverwriteToggles(updatedGroups.Select(x => x.Item1));
// 普通の Toggle達
var updated = toggleDict.ScanUpdate().ToArray();
foreach (var x in updated) {
var (key, current) = x;
toggleDelegate?.OnSelectionChanged(key, current);
}
}
// 片方を閉じる
async void OnDestroy() {
// 同フレームで OnDestroy を呼ぶと警告が出るので遅延実行
await Task.Delay(1);
if (graphWindow != null) {
graphWindow.Close();
}
graphWindow = null;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 69bee09693f54d46954fb60401f58b66
timeCreated: 1606312787

View File

@ -0,0 +1,5 @@
Label {
font-size: 20px;
-unity-font-style: bold;
color: rgb(68, 138, 255);
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7906d8f1d4e539745bf53fba8fc20d3a
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 24d749776c208f4408be0cfccb02d1c7
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@ -0,0 +1,6 @@
namespace AsmdefHelper.DependencyGraph.Editor {
public interface IToggle {
bool IsOn { set; get; }
string Name { set; get; }
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4f8c1aea6924490e9d1f3745569b7c03
timeCreated: 1606663328

View File

@ -0,0 +1,5 @@
namespace AsmdefHelper.DependencyGraph.Editor {
public interface IToggleCheckDelegate {
void OnSelectionChanged(string label, bool isChecked);
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0c48da7c3f95419cbfc95c4ec2816489
timeCreated: 1606313215

View File

@ -0,0 +1,58 @@
using System.Collections.Generic;
using System.Linq;
namespace AsmdefHelper.DependencyGraph.Editor {
public class ToggleDict {
class TogglePair {
public bool prevToggleValue;
public readonly IToggle toggle;
public TogglePair(IToggle toggle) {
this.toggle = toggle;
prevToggleValue = toggle.IsOn;
}
}
readonly IDictionary<string, TogglePair> dict;
public ToggleDict() {
dict = new Dictionary<string, TogglePair>();
}
public void Add(string key, IToggle toggle) {
dict.Add(key, new TogglePair(toggle));
}
public IEnumerable<(string, bool)> ScanUpdate() {
return dict
.Where(x => x.Value.prevToggleValue != x.Value.toggle.IsOn)
.Select(x => {
// 更新も行う
dict[x.Key].prevToggleValue = x.Value.toggle.IsOn;
return (x.Key, x.Value.toggle.IsOn);
});
}
public void OverwriteToggles(IEnumerable<string> updateKeys) {
// UI 上の Toggle の check が変わってもisOnには反映されないのでここで設定
foreach (var keys in updateKeys) {
var val = dict[keys];
val.toggle.IsOn = val.toggle.IsOn;
}
}
public bool TryGetToggle(string key, out IToggle toggle) {
if (dict.TryGetValue(key, out var x)) {
toggle = x.toggle;
return true;
}
toggle = default;
return false;
}
public void Clear() {
dict.Clear();
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8725d14bce6043b387ea7f0361a56750
timeCreated: 1606747756

View File

@ -0,0 +1,28 @@
using System.Collections.Generic;
namespace AsmdefHelper.DependencyGraph.Editor {
public class ToggleGroup : IToggle {
readonly IToggle masterToggle;
readonly IEnumerable<IToggle> slaveToggles;
public ToggleGroup(IToggle masterToggle, IEnumerable<IToggle> slaveToggles) {
this.masterToggle = masterToggle;
this.slaveToggles = slaveToggles;
}
public string Name {
get => masterToggle.Name;
set => masterToggle.Name = value;
}
public bool IsOn {
get => masterToggle.IsOn;
set {
masterToggle.IsOn = value;
foreach (var toggle in slaveToggles) {
toggle.IsOn = value;
}
}
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5308ff649752450ba423e8ce799f2048
timeCreated: 1606663303

View File

@ -0,0 +1,10 @@
using UnityEngine.UIElements;
namespace AsmdefHelper.DependencyGraph.Editor {
public class UiElementToggle : IToggle {
public readonly Toggle Toggle;
public UiElementToggle(Toggle toggle) => Toggle = toggle;
public string Name { get => Toggle.text; set => Toggle.text = value; }
public bool IsOn { get => Toggle.value; set => Toggle.value = value; }
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: faa82404bed34442b46aceb699aa2fd6
timeCreated: 1606663359

View File

@ -0,0 +1,67 @@
using System.Collections.Generic;
using System.Linq;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode {
public class DomainGroup {
readonly Dictionary<string, List<DomainUnit>> dict;
public DomainGroup() {
dict = new Dictionary<string, List<DomainUnit>>();
}
public void Create(IEnumerable<string> all) {
dict.Clear();
foreach (var str in all) {
var unit = new DomainUnit(str, '.');
if (!unit.HasSubDomain()) {
unit = new DomainUnit(str, '-');
}
if (!unit.HasSubDomain()) {
unit = new DomainUnit(str, '_');
}
if (!unit.HasSubDomain()) {
dict.Add(unit.FullName, new List<DomainUnit> { unit });
} else {
if (dict.TryGetValue(unit.TopDomain, out var list)) {
list.Add(unit);
} else {
dict.Add(unit.TopDomain, new List<DomainUnit> { unit });
}
}
}
// 1つしかなかったものを単独とする
var soloKeys = GetSoloDomains().ToArray();
foreach (var key in soloKeys) {
var unit = dict[key].FirstOrDefault();
if (unit == null || key == unit.FullName) {
continue;
}
dict.Remove(key);
var newKey = unit.FullName;
if (dict.ContainsKey(newKey)) {
dict[newKey].Add(unit);
} else {
dict.Add(newKey, new List<DomainUnit> { new DomainUnit(unit.FullName, '\0') });
}
}
}
public IEnumerable<string> GetTopDomains() => dict.Keys;
public IEnumerable<string> GetSoloDomains() => dict
.Where(x => x.Value.Count == 1)
.Select(x => x.Key);
public IEnumerable<string> GetTopDomainsWithSomeSubDomains() => dict
.Keys
.Except(GetSoloDomains());
public IEnumerable<DomainUnit> GetSubDomains(string topDomain) {
if (dict.TryGetValue(topDomain, out var list)) {
return list;
}
return new DomainUnit[0];
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d9fe84ab1b8c44b0a841738f0ecb37d3
timeCreated: 1606659209

View File

@ -0,0 +1,27 @@
using System;
using System.Linq;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode {
public class DomainUnit {
public readonly string FullName;
public readonly string TopDomain;
public readonly string SubDomain;
public DomainUnit(string fullName, char separator) {
this.FullName = fullName;
if (string.IsNullOrEmpty(FullName)) return;
var split = fullName.Split(separator).Where(x => !string.IsNullOrEmpty(x)).ToArray();
if (split.Length < 2) {
TopDomain = fullName.Replace(separator.ToString(), "");
SubDomain = string.Empty;
} else {
TopDomain = split[0];
SubDomain = split.Skip(1).Aggregate((a, b) => $"{a}{separator}{b}");
}
}
public bool HasSubDomain() => !string.IsNullOrEmpty(SubDomain);
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2927a4439ddc45a0a386b64e05220d53
timeCreated: 1606658272

View File

@ -18,6 +18,7 @@ namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Sort {
var posDict = nodeArr.ToDictionary(x => x.Profile, _ => originPosition);
// まず順番に整列させる
nodeArr = nodeArr.OrderBy(x => x.Profile.Name).ToArray();
var nodeGrid = new NodeGrid(alignParam.nodeWidth, alignParam.nodeHeight, alignParam.basicDistance, nodeArr.Length);
for (var i = 0; i < nodeArr.Length; i++) {
posDict[nodeArr[i].Profile] += nodeGrid.GridCenterPositions()[i];
@ -43,6 +44,15 @@ namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Sort {
}
}
// 接続数に応じて左右に移動させる
// ref to が多いものが左に、ref by が多いものが右に
const float factor = 60.0F;
foreach (var dep in nodeArr) {
var score = (dep.Sources.Count - dep.Destinations.Count) * factor;
var p = posDict[dep.Profile];
posDict[dep.Profile] = new Vector2(p.x + score, p.y);
}
return posDict.Select(x => new SortedNode { Profile = x.Key, Position = x.Value });
}
}

View File

@ -1,5 +1,5 @@
namespace AsmdefHelper.DependencyGraph.Editor.NodeView {
public interface INodeView : IRect {
public interface INodeView : IRect, IVisible {
string Label { set; get; }
}
}

View File

@ -0,0 +1,5 @@
namespace AsmdefHelper.DependencyGraph.Editor.NodeView {
public interface IVisible {
bool Visibility { set; get; }
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: aecb56b3d2f84f408ad0aff39ba9e24c
timeCreated: 1606396097

View File

@ -22,5 +22,10 @@ namespace AsmdefHelper.DependencyGraph.Editor.NodeView {
public float Height => contentRect.height;
public float Width => contentRect.width;
public virtual bool Visibility {
get => visible;
set => visible = value;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8119c430aef94628a88162f0f2dede2c
timeCreated: 1606663500

View File

@ -3,8 +3,9 @@ using AsmdefHelper.DependencyGraph.Editor.DependencyNode.Sort;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class DependencyNodeExtensionsTest {
[SetUp]

View File

@ -0,0 +1,53 @@
using System.Collections;
using System.Linq;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class DomainGroupTest {
readonly string[] inputs ={
"unity.hoge",
"unity.fuga",
"unity.foo.bar",
"UniRx",
"UniRx.Async",
"zenject",
"zenject-test-framework",
"MyAsmdef",
"MyAsmdef2_Test",
"MyAsmdef3.hoge",
"MyAsmdef3-hoge",
};
[Test]
public void TestDomainGroup() {
var group = new DomainGroup();
group.Create(inputs);
Assert.That(group.GetTopDomains().Count(), Is.EqualTo(6));
Assert.That(group.GetSubDomains("unity").Count(), Is.EqualTo(3));
Assert.That(group.GetSubDomains("UniRx").Count(), Is.EqualTo(2));
Assert.That(group.GetSubDomains("zenject").Count(), Is.EqualTo(2));
Assert.That(group.GetSubDomains("MyAsmdef").Count(), Is.EqualTo(1));
Assert.That(group.GetSubDomains("MyAsmdef2_Test").Count(), Is.EqualTo(1));
Assert.That(group.GetSubDomains("MyAsmdef3").Count(), Is.EqualTo(2));
Assert.That(group.GetTopDomainsWithSomeSubDomains().Count(), Is.EqualTo(4));
Assert.That(group.GetSoloDomains().Count(), Is.EqualTo(2));
Assert.That(group.GetSubDomains("unity").Any(x => x.SubDomain == "hoge"), Is.True);
Assert.That(group.GetSubDomains("unity").Any(x => x.SubDomain == "fuga"), Is.True);
Assert.That(group.GetSubDomains("unity").Any(x => x.SubDomain == "foo.bar"), Is.True);
Assert.That(group.GetSubDomains("UniRx").Any(x => x.SubDomain == ""), Is.True);
Assert.That(group.GetSubDomains("UniRx").Any(x => x.SubDomain == "Async"), Is.True);
Assert.That(group.GetSubDomains("zenject").Any(x => x.SubDomain == ""), Is.True);
Assert.That(group.GetSubDomains("zenject").Any(x => x.SubDomain == "test-framework"), Is.True);
Assert.That(group.GetSubDomains("MyAsmdef").Any(x => x.SubDomain == ""), Is.True);
Assert.That(group.GetSubDomains("MyAsmdef2_Test").Any(x => x.SubDomain == ""), Is.True);
Assert.That(group.GetSubDomains("MyAsmdef3").Any(x => x.SubDomain == "hoge"), Is.True);
Assert.That(group.GetSubDomains("MyAsmdef3").Count(x => x.SubDomain == "hoge"), Is.EqualTo(2));
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1ccc87caf20a4985a4e3c94bfc1c12c6
timeCreated: 1606660230

View File

@ -0,0 +1,73 @@
using System.Collections;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class DomainUnitTest {
[Test]
public void TestDomainUnit_HasTopDomain() {
var unit = new DomainUnit("abc.def.ghi.jk", '.');
Assert.That(unit.FullName, Is.EqualTo("abc.def.ghi.jk"));
Assert.That(unit.TopDomain, Is.EqualTo("abc"));
Assert.That(unit.SubDomain, Is.EqualTo("def.ghi.jk"));
Assert.That(unit.HasSubDomain, Is.True);
}
[Test]
public void TestDomainUnit_HasNoTopDomain() {
var unit = new DomainUnit("abcdefghijk", '.');
Assert.That(unit.FullName, Is.EqualTo("abcdefghijk"));
Assert.That(unit.TopDomain, Is.EqualTo("abcdefghijk"));
Assert.That(unit.SubDomain, Is.Empty);
Assert.That(unit.HasSubDomain, Is.False);
}
[Test]
public void TestDomainUnit_StartWithSeparator() {
var unit = new DomainUnit(".abc", '.');
Assert.That(unit.FullName, Is.EqualTo(".abc"));
Assert.That(unit.TopDomain, Is.EqualTo("abc"));
Assert.That(unit.SubDomain, Is.Empty);
Assert.That(unit.HasSubDomain, Is.False);
}
[Test]
public void TestDomainUnit_EndWithSeparator() {
var unit = new DomainUnit("abc.", '.');
Assert.That(unit.FullName, Is.EqualTo("abc."));
Assert.That(unit.TopDomain, Is.EqualTo("abc"));
Assert.That(unit.SubDomain, Is.Empty);
Assert.That(unit.HasSubDomain, Is.False);
}
[Test]
public void TestDomainUnit_StartAndEndWithSeparator() {
var unit = new DomainUnit(".abc.def.", '.');
Assert.That(unit.FullName, Is.EqualTo(".abc.def."));
Assert.That(unit.TopDomain, Is.EqualTo("abc"));
Assert.That(unit.SubDomain, Is.EqualTo("def"));
Assert.That(unit.HasSubDomain, Is.True);
}
[Test]
public void TestDomainUnit_OnlySeparator() {
var unit = new DomainUnit(".", '.');
Assert.That(unit.FullName, Is.EqualTo("."));
Assert.That(unit.TopDomain, Is.Empty);
Assert.That(unit.SubDomain, Is.Empty);
Assert.That(unit.HasSubDomain, Is.False);
}
[Test]
public void TestDomainUnit_OnlySeparators() {
var unit = new DomainUnit("...", '.');
Assert.That(unit.FullName, Is.EqualTo("..."));
Assert.That(unit.TopDomain, Is.Empty);
Assert.That(unit.SubDomain, Is.Empty);
Assert.That(unit.HasSubDomain, Is.False);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ecc6823b62f94fd3a910f5a885a201dc
timeCreated: 1606658361

View File

@ -1,9 +1,10 @@
using System.Collections;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class HashSetDependencyNodeTest {
[Test]

View File

@ -1,12 +1,13 @@
using System.Collections;
using System.Linq;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode.Sort;
using NUnit.Framework;
using UnityEditor;
using UnityEngine;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class LinerSortStrategyTest {
const float d = 10.0F;
const float w = 10.0F;

View File

@ -4,7 +4,7 @@ using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class NodeGridTest {
[Test]

View File

@ -1,10 +1,11 @@
using System.Collections;
using System.Collections.Generic;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class NodeIdTest {
[Test]
public void TestNodeIdValue() {

View File

@ -1,10 +1,11 @@
using System.Collections;
using System.Linq;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class NodeProcessorTest {
[SetUp]

View File

@ -2,8 +2,9 @@ using System.Collections;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class NodeProfileTest {
[Test]

View File

@ -1,6 +1,7 @@
using System.Collections.Generic;
using AsmdefHelper.DependencyGraph.Editor.DependencyNode;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public static class Ids {
public static readonly NodeId _0 = new NodeId(0);

View File

@ -6,7 +6,7 @@ using UnityEditor;
using UnityEngine;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class RandomSortStrategyTest {
const float d = 10.0F;
const float w = 10.0F;

View File

@ -5,7 +5,7 @@ using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests {
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class SquareValueProviderTest {
[Test]

View File

@ -0,0 +1,48 @@
using System.Collections;
using System.Linq;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class ToggleDictTest {
[Test]
public void TestScanUpdate() {
var dict = new ToggleDict();
var toggle0 = new ToggleMock { IsOn = false };
var toggle1 = new ToggleMock { IsOn = false };
dict.Add("key0", toggle0);
dict.Add("key1", toggle1);
toggle0.IsOn = true;
// toggleの更新が取得できるか
var updated = dict.ScanUpdate().ToArray();
Assert.That(updated.Length, Is.EqualTo(1));
var (key0, val0) = updated[0];
Assert.That(key0, Is.EqualTo("key0"));
Assert.That(val0, Is.True);
}
[Test]
public void TestTryGetToggle() {
var dict = new ToggleDict();
var toggle0 = new ToggleMock { IsOn = false };
var toggle1 = new ToggleMock { IsOn = false };
dict.Add("key0", toggle0);
dict.Add("key1", toggle1);
var ret = dict.TryGetToggle("key0", out var getToggle);
Assert.That(ret, Is.True);
Assert.That(getToggle, Is.EqualTo(toggle0));
ret = dict.TryGetToggle("key1", out getToggle);
Assert.That(ret, Is.True);
Assert.That(getToggle, Is.EqualTo(toggle1));
dict.Clear();
ret = dict.TryGetToggle("key0", out getToggle);
Assert.That(ret, Is.False);
Assert.That(getToggle, Is.Null);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d5e4669ffa314d21bd51796c7ee890f4
timeCreated: 1606750547

View File

@ -0,0 +1,25 @@
using System.Collections;
using NUnit.Framework;
using UnityEditor;
using UnityEngine.TestTools;
namespace AsmdefHelper.DependencyGraph.Editor.Tests {
public class ToggleGroupTest {
[Test]
public void TestToggleGroup() {
var toggle0 = new ToggleMock();
var toggle1 = new ToggleMock();
var toggle2 = new ToggleMock();
var toggleGroup = new ToggleGroup(toggle0, new[] { toggle1, toggle2 });
toggleGroup.IsOn = true;
toggle0.IsOn = true;
Assert.That(toggle1.IsOn, Is.True);
Assert.That(toggle2.IsOn, Is.True);
}
}
public class ToggleMock : IToggle {
public bool IsOn { set; get; }
public string Name { get; set; }
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 70c75ed559ab47378f605fbf1b75c85f
timeCreated: 1606747443

View File

@ -1,361 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 705507994}
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 1490641308}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &705507993
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 705507995}
- component: {fileID: 705507994}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &705507994
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 1
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &705507995
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &963194225
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 963194228}
- component: {fileID: 963194227}
- component: {fileID: 963194226}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &963194226
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_Enabled: 1
--- !u!20 &963194227
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &963194228
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!850595691 &1490641308
LightingSettings:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Settings.lighting
serializedVersion: 2
m_GIWorkflowMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
m_IndirectOutputScale: 1
m_UsingShadowmask: 1
m_BakeBackend: 1
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_TextureCompression: 1
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAO: 0
m_MixedBakeMode: 2
m_LightmapsBakeMode: 1
m_FilterMode: 1
m_LightmapParameters: {fileID: 0}
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_RealtimeResolution: 2
m_ForceWhiteAlbedo: 0
m_ForceUpdates: 0
m_FinalGather: 0
m_FinalGatherRayCount: 256
m_FinalGatherFiltering: 1
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRRussianRouletteStartBounce: 2
m_PVREnvironmentMIS: 0
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 9fc0d4010bbf28b4594072e72b8655ab
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 3343c43624a31f447a1961156a2cac6e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 07e92c78d576a8a458ce4a298eeb512d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,17 +0,0 @@
{
"name": "AsmdefHelper.SyncSolution.Editor",
"references": [
"GUID:211243abc45174c45b3a6c275ea126b9"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: dcfd308825181f346bc76cac8ae79330
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,57 +0,0 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
using AsmdefHelper.UnityInternal;
// https://forum.unity.com/threads/solved-unity-not-generating-sln-file-from-assets-open-c-project.538487/
// Thank you Flexford!
namespace AsmdefHelper.SyncSolution.Editor {
public static class SyncSolutionUtilities {
[MenuItem("AsmdefHelper/Sync C# Solution", priority = 3000)]
public static void Sync() {
Sync(true);
}
static void Sync(bool logsEnabled) {
CleanOldFiles(logsEnabled);
Call_SyncSolution(logsEnabled);
Call_SynchronizerSync(logsEnabled);
}
static void CleanOldFiles(bool logsEnabled) {
var assetsDirectoryInfo = new DirectoryInfo(Application.dataPath);
var projectDirectoryInfo = assetsDirectoryInfo.Parent;
var files = GetFilesByExtensions(projectDirectoryInfo, "*.sln", "*.csproj");
foreach (var file in files) {
if (logsEnabled) {
Debug.Log($"Remove old solution file: {file.Name}");
}
file.Delete();
}
}
static void Call_SyncSolution(bool logsEnabled) {
if (logsEnabled) {
Debug.Log($"Coll method: SyncVS.Sync()");
}
SolutionSynchronizerWrapper.SyncSolution();
}
static void Call_SynchronizerSync(bool logsEnabled) {
if (logsEnabled) {
Debug.Log($"Coll method: SyncVS.Synchronizer.Sync()");
}
SolutionSynchronizerWrapper.SynchronizerSync();
}
static IEnumerable<FileInfo> GetFilesByExtensions(DirectoryInfo dir, params string[] extensions) {
extensions = extensions ?? new[] { "*" };
var files = Enumerable.Empty<FileInfo>();
return extensions.Aggregate(files, (current, ext) => current.Concat(dir.GetFiles(ext)));
}
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: e5785f4c5d9ed634799d54e96aabf408
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
using UnityEditor;
using UnityEditor.Experimental.AssetImporters;
namespace AsmdefHelper.UnityInternal {
public class InspectorWindowWrapper : EditorWindow{
@ -17,7 +17,11 @@ namespace AsmdefHelper.UnityInternal {
public void AllApply() {
foreach (var editor in inspectorWindow.tracker.activeEditors) {
var assetImporterEditor = editor as AssetImporterEditor;
#if UNITY_2021_1_OR_NEWER
var assetImporterEditor = editor as UnityEditor.AssetImporters.AssetImporterEditor;
#else
var assetImporterEditor = editor as UnityEditor.Experimental.AssetImporters.AssetImporterEditor;
#endif
if (assetImporterEditor != null && assetImporterEditor.HasModified()) {
assetImporterEditor.ApplyAndImport();

View File

@ -1,22 +0,0 @@
using UnityEditor;
using UnityEditor.VisualStudioIntegration;
namespace AsmdefHelper.UnityInternal {
public static class SolutionSynchronizerWrapper {
static readonly SolutionSynchronizer synchronizer;
static SolutionSynchronizerWrapper() {
synchronizer = SyncVS.Synchronizer;
}
public static void SyncSolution() {
SyncVS.SyncSolution();
}
public static void SynchronizerSync() {
synchronizer?.Sync();
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: aeb995b6396143f58028eb4aa639c7c4
timeCreated: 1586952223

View File

@ -1,7 +1,7 @@
{
"name": "dev.n5y.asmdefhelper",
"displayName": "AsmdefHelper",
"version": "0.3.0",
"version": "0.5.3",
"unity": "2019.3",
"description": "Unity assembly definition utilities.",
"keywords": ["asmdef", "editor"],

View File

@ -1,8 +1,8 @@
{
"dependencies": {
"com.unity.ide.rider": "1.2.1",
"com.unity.ide.visualstudio": "2.0.2",
"com.unity.test-framework": "1.1.16",
"com.unity.ide.rider": "3.0.9",
"com.unity.ide.visualstudio": "2.0.12",
"com.unity.test-framework": "1.1.29",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",

View File

@ -1,34 +1,36 @@
{
"dependencies": {
"com.unity.ext.nunit": {
"version": "1.0.0",
"version": "1.0.6",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.ide.rider": {
"version": "1.2.1",
"version": "3.0.9",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.test-framework": "1.1.1"
"com.unity.ext.nunit": "1.0.6"
},
"url": "https://packages.unity.com"
},
"com.unity.ide.visualstudio": {
"version": "2.0.2",
"depth": 0,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.test-framework": {
"version": "1.1.16",
"version": "2.0.12",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.ext.nunit": "1.0.0",
"com.unity.test-framework": "1.1.9"
},
"url": "https://packages.unity.com"
},
"com.unity.test-framework": {
"version": "1.1.29",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.ext.nunit": "1.0.6",
"com.unity.modules.imgui": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0"
},

View File

@ -0,0 +1,35 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!387306366 &1
MemorySettings:
m_ObjectHideFlags: 0
m_EditorMemorySettings:
m_MainAllocatorBlockSize: -1
m_ThreadAllocatorBlockSize: -1
m_MainGfxBlockSize: -1
m_ThreadGfxBlockSize: -1
m_CacheBlockSize: -1
m_TypetreeBlockSize: -1
m_ProfilerBlockSize: -1
m_ProfilerEditorBlockSize: -1
m_BucketAllocatorGranularity: -1
m_BucketAllocatorBucketsCount: -1
m_BucketAllocatorBlockSize: -1
m_BucketAllocatorBlockCount: -1
m_ProfilerBucketAllocatorGranularity: -1
m_ProfilerBucketAllocatorBucketsCount: -1
m_ProfilerBucketAllocatorBlockSize: -1
m_ProfilerBucketAllocatorBlockCount: -1
m_TempAllocatorSizeMain: -1
m_JobTempAllocatorBlockSize: -1
m_BackgroundJobTempAllocatorBlockSize: -1
m_JobTempAllocatorReducedBlockSize: -1
m_TempAllocatorSizeGIBakingWorker: -1
m_TempAllocatorSizeNavMeshWorker: -1
m_TempAllocatorSizeAudioWorker: -1
m_TempAllocatorSizeCloudWorker: -1
m_TempAllocatorSizeGfx: -1
m_TempAllocatorSizeJobWorker: -1
m_TempAllocatorSizeBackgroundWorker: -1
m_TempAllocatorSizePreloadManager: -1
m_PlatformMemorySettings: {}

View File

@ -1,2 +1,2 @@
m_EditorVersion: 2020.1.6f1
m_EditorVersionWithRevision: 2020.1.6f1 (fc477ca6df10)
m_EditorVersion: 2021.2.8f1
m_EditorVersionWithRevision: 2021.2.8f1 (d0e5f0a7b06a)

View File

View File

@ -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://git.roseapollo.com/rose/AsmdefHelper.git?path=Assets"
```
## Dependency Graph
Unity assembly definition viewer.
@ -14,10 +21,12 @@ Unity assembly definition viewer.
Show assembly definition referances in your project like this.
<img src="https://user-images.githubusercontent.com/15327448/79340184-e8f44080-7f64-11ea-87f9-3ec90f9c5fa5.png" width="450" />
<img src="https://user-images.githubusercontent.com/15327448/100633752-cdae3800-3371-11eb-9729-dfb8c4fd3412.png" width="580" />
You need to organize the nodes by yourself.
You can toggle node appear/disappear.
## Multiple Edit
Open multiple assembly definition inspector views for parallel editing.
@ -30,15 +39,6 @@ Open multiple assembly definition inspector views for parallel editing.
<img src="https://user-images.githubusercontent.com/15327448/79342775-813ff480-7f68-11ea-851d-3e93b5948c0b.gif" width="450" />
## Sync Solution
Refresh .sln/.csproj in your project.
(menu) > [AsmdefHelper] > [Sync C# Solution]
I referred to this: [[SOLVED] Unity not generating .sln file from Assets > Open C# Project
](https://forum.unity.com/threads/solved-unity-not-generating-sln-file-from-assets-open-c-project.538487/)
## Compile Locker
Lock unity editor compile to edit an asmdef.
@ -70,7 +70,7 @@ And you can also rename an asmdef by one action.
___
## Environment
Unity 2020.1.6f1
Unity 2021.2.8f1
This library use unity internal class, so may be not work (or couse build error) depending your unity vresion.

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.UIElements.Debugger" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.Experimental.GraphView" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
<xs:import schemaLocation="UnityEditor.PackageManager.UI.xsd" namespace="UnityEditor.PackageManager.UI" />
<xs:import schemaLocation="UnityEditor.UIElements.xsd" namespace="UnityEditor.UIElements" />
<xs:import schemaLocation="UnityEditor.UIElements.Debugger.xsd" namespace="UnityEditor.UIElements.Debugger" />
<xs:import schemaLocation="UnityEditor.Experimental.GraphView.xsd" namespace="UnityEditor.Experimental.GraphView" />
</xs:schema>

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.Experimental.GraphView" elementFormDefault="qualified" targetNamespace="UnityEditor.Experimental.GraphView" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
<xs:complexType name="PillType">
<xs:complexContent mixed="false">
<xs:restriction base="engine:VisualElementType">
<xs:attribute default="" name="name" type="xs:string" use="optional" />
<xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
<xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
<xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
<xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
<xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
<xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
<xs:attribute default="" name="class" type="xs:string" use="optional" />
<xs:attribute default="" name="content-container" type="xs:string" use="optional" />
<xs:attribute default="" name="style" type="xs:string" use="optional" />
<xs:attribute default="false" name="highlighted" type="xs:boolean" use="optional" />
<xs:attribute default="" name="text" type="xs:string" use="optional" />
<xs:anyAttribute processContents="lax" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Pill" substitutionGroup="engine:VisualElement" type="PillType" />
<xs:complexType name="ResizableElementType">
<xs:complexContent mixed="false">
<xs:restriction base="engine:VisualElementType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="engine:VisualElement" />
</xs:sequence>
<xs:attribute default="" name="name" type="xs:string" use="optional" />
<xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
<xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
<xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
<xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
<xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
<xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
<xs:attribute default="" name="class" type="xs:string" use="optional" />
<xs:attribute default="" name="content-container" type="xs:string" use="optional" />
<xs:attribute default="" name="style" type="xs:string" use="optional" />
<xs:anyAttribute processContents="lax" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="ResizableElement" substitutionGroup="engine:VisualElement" type="ResizableElementType" />
<xs:complexType name="StickyNoteType">
<xs:complexContent mixed="false">
<xs:restriction base="engine:VisualElementType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="engine:VisualElement" />
</xs:sequence>
<xs:attribute default="" name="name" type="xs:string" use="optional" />
<xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
<xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
<xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
<xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
<xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
<xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
<xs:attribute default="" name="class" type="xs:string" use="optional" />
<xs:attribute default="" name="content-container" type="xs:string" use="optional" />
<xs:attribute default="" name="style" type="xs:string" use="optional" />
<xs:anyAttribute processContents="lax" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="StickyNote" substitutionGroup="engine:VisualElement" type="StickyNoteType" />
</xs:schema>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.UIElements.Debugger" elementFormDefault="qualified" targetNamespace="UnityEditor.PackageManager.UI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.Experimental.GraphView" elementFormDefault="qualified" targetNamespace="UnityEditor.PackageManager.UI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
<xs:complexType name="AlertType">
<xs:complexContent mixed="false">

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.UIElements.Debugger" elementFormDefault="qualified" targetNamespace="UnityEditor.UIElements.Debugger" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.Experimental.GraphView" elementFormDefault="qualified" targetNamespace="UnityEditor.UIElements.Debugger" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
<xs:complexType name="EventTypeSelectFieldType">
<xs:complexContent mixed="false">
@ -23,5 +23,5 @@
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="EventTypeSelectField" substitutionGroup="engine:VisualElement" type="EventTypeSelectFieldType" />
<xs:element name="EventTypeSelectField" substitutionGroup="engine:VisualElement" xmlns:q1="UnityEditor.UIElements.Debugger" type="q1:EventTypeSelectFieldType" />
</xs:schema>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.UIElements.Debugger" elementFormDefault="qualified" targetNamespace="UnityEditor.UIElements" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.Experimental.GraphView" elementFormDefault="qualified" targetNamespace="UnityEditor.UIElements" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
<xs:simpleType name="PropertyControl_value-type_Type">
<xs:restriction base="xs:string">

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.UIElements.Debugger" elementFormDefault="qualified" targetNamespace="UnityEngine.UIElements" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.Experimental.GraphView" elementFormDefault="qualified" targetNamespace="UnityEngine.UIElements" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="UXMLType">
<xs:complexContent mixed="false">
<xs:restriction base="xs:anyType">

View File

@ -0,0 +1,689 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 0
y: 45
width: 2560
height: 1391
m_ShowMode: 4
m_Title:
m_RootView: {fileID: 6}
m_MinSize: {x: 950, y: 300}
m_MaxSize: {x: 10000, y: 10000}
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 9}
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 0
y: 30
width: 2560
height: 1341
m_MinSize: {x: 683, y: 492}
m_MaxSize: {x: 14004, y: 14042}
vertical: 0
controlID: 615
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 2041
y: 0
width: 519
height: 1341
m_MinSize: {x: 277, y: 71}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 14}
m_Panes:
- {fileID: 14}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 505
height: 811
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 15}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 811
width: 2041
height: 530
m_MinSize: {x: 232, y: 271}
m_MaxSize: {x: 10002, y: 10021}
m_ActualView: {fileID: 13}
m_Panes:
- {fileID: 13}
- {fileID: 18}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 7}
- {fileID: 2}
- {fileID: 8}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 2560
height: 1391
m_MinSize: {x: 950, y: 300}
m_MaxSize: {x: 10000, y: 10000}
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 2560
height: 30
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
m_LastLoadedLayoutName: Default
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 1371
width: 2560
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 10}
- {fileID: 5}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 2041
height: 1341
m_MinSize: {x: 406, y: 492}
m_MaxSize: {x: 10002, y: 14042}
vertical: 1
controlID: 547
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 4}
- {fileID: 11}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 2041
height: 811
m_MinSize: {x: 406, y: 221}
m_MaxSize: {x: 8006, y: 4021}
vertical: 0
controlID: 548
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 505
y: 0
width: 1536
height: 811
m_MinSize: {x: 204, y: 221}
m_MaxSize: {x: 4004, y: 4021}
m_ActualView: {fileID: 16}
m_Panes:
- {fileID: 16}
- {fileID: 17}
- {fileID: 12}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &12
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12111, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 0
m_MinSize: {x: 400, y: 100}
m_MaxSize: {x: 2048, y: 2048}
m_TitleContent:
m_Text: Asset Store
m_Image: {fileID: 357073275683767465, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 0
m_Pos:
serializedVersion: 2
x: 468
y: 181
width: 973
height: 501
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 0
m_MinSize: {x: 230, y: 250}
m_MaxSize: {x: 10000, y: 10000}
m_TitleContent:
m_Text: Project
m_Image: {fileID: -7501376956915960154, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 0
m_Pos:
serializedVersion: 2
x: 0
y: 905
width: 2039
height: 509
m_SearchFilter:
m_NameFilter:
m_ClassNames: []
m_AssetLabels: []
m_AssetBundleNames: []
m_VersionControlStates: []
m_ReferencingInstanceIDs:
m_ScenePaths: []
m_ShowAllHits: 0
m_SearchArea: 0
m_Folders:
- Assets
m_ViewMode: 1
m_StartGridSize: 64
m_LastFolders:
- Assets
m_LastFoldersGridSize: -1
m_LastProjectPath: /Users/danielbrauer/Unity Projects/New Unity Project 20
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: b0230000
m_LastClickedID: 9136
m_ExpandedIDs: 00000000b023000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 0}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
m_Path:
m_Icon: {fileID: 0}
m_ResourceFile:
m_SearchString:
m_ColumnWidths: []
m_AssetTreeState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000b023000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 0}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
m_Path:
m_Icon: {fileID: 0}
m_ResourceFile:
m_SearchString:
m_ColumnWidths: []
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0
m_ExpandedInstanceIDs: c6230000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 0}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
m_Path:
m_Icon: {fileID: 0}
m_ResourceFile:
m_NewAssetIndexInList: -1
m_ScrollPosition: {x: 0, y: 0}
m_GridSize: 64
m_DirectoriesAreaWidth: 115
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 0
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Inspector
m_Image: {fileID: -6905738622615590433, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 0
m_Pos:
serializedVersion: 2
x: 2043
y: 94
width: 517
height: 1320
m_ScrollPosition: {x: 0, y: 0}
m_InspectorMode: 0
m_PreviewResizer:
m_CachedPref: 160
m_ControlHash: -371814159
m_PrefName: Preview_InspectorPreview
m_PreviewWindow: {fileID: 0}
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 0
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Hierarchy
m_Image: {fileID: -590624980919486359, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 0
m_Pos:
serializedVersion: 2
x: 0
y: 94
width: 503
height: 790
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 0}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
m_Path:
m_Icon: {fileID: 0}
m_ResourceFile:
m_SearchString:
m_ColumnWidths: []
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
m_Locked: 0
m_CurrentSortingName: TransformSorting
--- !u!114 &16
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 1
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Scene
m_Image: {fileID: 2318424515335265636, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 32
m_Pos:
serializedVersion: 2
x: 507
y: 94
width: 1532
height: 790
m_SceneLighting: 1
lastFramingTime: 0
m_2DMode: 0
m_isRotationLocked: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 0, y: 0, z: 0}
speed: 2
m_Value: {x: 0, y: 0, z: 0}
m_RenderMode: 0
m_SceneViewState:
showFog: 1
showMaterialUpdate: 0
showSkybox: 1
showFlares: 1
showImageEffects: 1
grid:
xGrid:
m_Target: 0
speed: 2
m_Value: 0
yGrid:
m_Target: 1
speed: 2
m_Value: 1
zGrid:
m_Target: 0
speed: 2
m_Value: 0
m_Rotation:
m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
speed: 2
m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
m_Size:
m_Target: 10
speed: 2
m_Value: 10
m_Ortho:
m_Target: 0
speed: 2
m_Value: 0
m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0}
m_LastSceneViewOrtho: 0
m_ReplacementShader: {fileID: 0}
m_ReplacementString:
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 1
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: -2087823869225018852, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 32
m_Pos:
serializedVersion: 2
x: 507
y: 94
width: 1532
height: 790
m_MaximizeOnPlay: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 000000000000000000000000000000000000000000000000000000000000000000000000
m_TargetDisplay: 0
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
m_HBaseRangeMin: -383
m_HBaseRangeMax: 383
m_VBaseRangeMin: -193.25
m_VBaseRangeMax: 193.25
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoom: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 17
width: 1532
height: 773
m_Scale: {x: 2, y: 2}
m_Translation: {x: 766, y: 386.5}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -383
y: -193.25
width: 766
height: 386.5
m_MinimalGUI: 1
m_defaultScale: 2
m_TargetTexture: {fileID: 0}
m_CurrentColorSpace: 1
m_LastWindowPixelSize: {x: 3064, y: 1580}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
--- !u!114 &18
MonoBehaviour:
m_ObjectHideFlags: 52
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_AutoRepaintOnSceneChange: 0
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Console
m_Image: {fileID: 111653112392082826, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_DepthBufferBits: 0
m_Pos:
serializedVersion: 2
x: 8
y: 718
width: 1366
height: 308