修改
This commit is contained in:
parent
250ae29328
commit
d87d6bd7f7
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
using InputGlyphsFramework;
|
using InputGlyphsFramework;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
@ -14,8 +13,6 @@ public class ActionPromptTMP : MonoBehaviour
|
|||||||
|
|
||||||
void OnEnable()
|
void OnEnable()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
if (textField == null) textField = GetComponentInChildren<TMP_Text>();
|
if (textField == null) textField = GetComponentInChildren<TMP_Text>();
|
||||||
if (InputService.Instance != null) InputService.Instance.OnBindingChanged += OnBindingChanged;
|
if (InputService.Instance != null) InputService.Instance.OnBindingChanged += OnBindingChanged;
|
||||||
InputDeviceWatcher.OnDeviceChanged += OnDeviceChanged;
|
InputDeviceWatcher.OnDeviceChanged += OnDeviceChanged;
|
||||||
@ -32,7 +29,6 @@ public class ActionPromptTMP : MonoBehaviour
|
|||||||
{
|
{
|
||||||
if (actionReference == null || actionReference.action == null) return;
|
if (actionReference == null || actionReference.action == null) return;
|
||||||
if (action == actionReference.action) UpdatePrompt();
|
if (action == actionReference.action) UpdatePrompt();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDeviceChanged(InputDeviceWatcher.InputDeviceCategory cat)
|
void OnDeviceChanged(InputDeviceWatcher.InputDeviceCategory cat)
|
||||||
@ -47,8 +43,8 @@ public class ActionPromptTMP : MonoBehaviour
|
|||||||
|
|
||||||
string path = InputService.GetBindingControlPath(action);
|
string path = InputService.GetBindingControlPath(action);
|
||||||
var device = InputDeviceWatcher.CurrentCategory;
|
var device = InputDeviceWatcher.CurrentCategory;
|
||||||
string displayFallback=string.Empty;
|
string displayFallback = string.Empty;
|
||||||
if (GlyphService.Instance != null && GlyphService.Instance.TryGetTMPTagForActionPath(path, device, out string tag, out displayFallback))
|
if (GlyphService.Instance != null && GlyphService.Instance.TryGetTMPTagForActionPath(path, device, out string tag, out displayFallback))
|
||||||
{
|
{
|
||||||
var s = string.Format(template, tag);
|
var s = string.Format(template, tag);
|
||||||
if (s != lastRendered)
|
if (s != lastRendered)
|
||||||
@ -56,6 +52,7 @@ public class ActionPromptTMP : MonoBehaviour
|
|||||||
textField.text = s;
|
textField.text = s;
|
||||||
lastRendered = s;
|
lastRendered = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,4 +74,3 @@ public class ActionPromptTMP : MonoBehaviour
|
|||||||
return last;
|
return last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
|
|
||||||
namespace InputGlyphsFramework
|
namespace InputGlyphsFramework
|
||||||
{
|
{
|
||||||
@ -10,6 +11,7 @@ namespace InputGlyphsFramework
|
|||||||
{
|
{
|
||||||
public Sprite Sprite;
|
public Sprite Sprite;
|
||||||
public string controlPath;
|
public string controlPath;
|
||||||
|
public InputAction action;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@ -24,7 +26,6 @@ namespace InputGlyphsFramework
|
|||||||
public class InputGlyphDatabase : ScriptableObject
|
public class InputGlyphDatabase : ScriptableObject
|
||||||
{
|
{
|
||||||
public List<DeviceGlyphTable> tables = new List<DeviceGlyphTable>();
|
public List<DeviceGlyphTable> tables = new List<DeviceGlyphTable>();
|
||||||
public string uiGenericKeyName = "UI_KEY_GENERIC";
|
|
||||||
|
|
||||||
public DeviceGlyphTable GetTable(InputDeviceWatcher.InputDeviceCategory device)
|
public DeviceGlyphTable GetTable(InputDeviceWatcher.InputDeviceCategory device)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,141 +1,171 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.U2D;
|
using UnityEngine.U2D;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using System.Reflection;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
using InputGlyphsFramework;
|
using InputGlyphsFramework;
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine.InputSystem.Layouts;
|
|
||||||
|
|
||||||
[CustomEditor(typeof(InputGlyphDatabase))]
|
[CustomEditor(typeof(InputGlyphDatabase))]
|
||||||
public class InputGlyphDatabaseEditor : Editor
|
public class InputGlyphDatabaseEditor : Editor
|
||||||
{
|
{
|
||||||
|
SerializedProperty tablesProp;
|
||||||
InputGlyphDatabase db;
|
InputGlyphDatabase db;
|
||||||
|
|
||||||
int tabIndex = 0;
|
int tabIndex = 0;
|
||||||
string[] tabNames = new string[] { "Keyboard", "Xbox", "PlayStation", "Other" };
|
string[] tabNames = new string[] { "Keyboard", "Xbox", "PlayStation", "Other" };
|
||||||
|
|
||||||
|
// Pagination
|
||||||
|
const int itemsPerPage = 10; // 10 items per page as requested
|
||||||
|
int currentPage = 0;
|
||||||
|
|
||||||
void OnEnable()
|
void OnEnable()
|
||||||
{
|
{
|
||||||
db = target as InputGlyphDatabase;
|
db = target as InputGlyphDatabase;
|
||||||
|
tablesProp = serializedObject.FindProperty("tables");
|
||||||
|
|
||||||
|
// Ensure serialized list exists
|
||||||
|
if (tablesProp == null)
|
||||||
|
{
|
||||||
|
// If the field name is different, user should fix it in their class or here.
|
||||||
|
Debug.LogError("Could not find serialized property 'tables' on InputGlyphDatabase. Check field name.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnInspectorGUI()
|
public override void OnInspectorGUI()
|
||||||
{
|
{
|
||||||
serializedObject.Update();
|
serializedObject.Update();
|
||||||
if (db == null) return;
|
if (db == null || tablesProp == null) return;
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
EditorGUILayout.Space();
|
||||||
tabIndex = GUILayout.Toolbar(tabIndex, tabNames, GUILayout.Height(24));
|
tabIndex = GUILayout.Toolbar(tabIndex, tabNames, GUILayout.Height(24));
|
||||||
var curDevice = (InputDeviceWatcher.InputDeviceCategory)tabIndex;
|
var curDevice = (InputDeviceWatcher.InputDeviceCategory)tabIndex;
|
||||||
|
|
||||||
if (db.tables == null) db.tables = new List<DeviceGlyphTable>();
|
// Ensure all 4 tables exist (serialized-safe)
|
||||||
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.Keyboard);
|
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.Keyboard);
|
||||||
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.Xbox);
|
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.Xbox);
|
||||||
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.PlayStation);
|
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.PlayStation);
|
||||||
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.Other);
|
EnsureTableFor(InputDeviceWatcher.InputDeviceCategory.Other);
|
||||||
|
|
||||||
var table = db.GetTable(curDevice);
|
var tableProp = GetTablePropertyFor(curDevice);
|
||||||
if (table == null) return;
|
if (tableProp == null)
|
||||||
|
{
|
||||||
|
EditorGUILayout.HelpBox("Table not found (this should not happen).", MessageType.Warning);
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
EditorGUILayout.BeginVertical("box");
|
EditorGUILayout.BeginVertical("box");
|
||||||
EditorGUILayout.LabelField(curDevice.ToString(), EditorStyles.boldLabel);
|
EditorGUILayout.LabelField(curDevice.ToString(), EditorStyles.boldLabel);
|
||||||
table.tmpAsset = EditorGUILayout.ObjectField("TMP Sprite Asset", table.tmpAsset, typeof(TMP_SpriteAsset), false) as TMP_SpriteAsset;
|
|
||||||
|
var tmpAssetProp = tableProp.FindPropertyRelative("tmpAsset");
|
||||||
|
EditorGUILayout.PropertyField(tmpAssetProp, new GUIContent("TMP Sprite Asset"));
|
||||||
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
EditorGUILayout.BeginHorizontal();
|
||||||
if (GUILayout.Button("Parse TMP Asset"))
|
if (GUILayout.Button("Parse TMP Asset"))
|
||||||
{
|
{
|
||||||
ParseTMPAssetIntoTable(table);
|
ParseTMPAssetIntoTableSerialized(tableProp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GUILayout.Button("Clear"))
|
if (GUILayout.Button("Clear"))
|
||||||
{
|
{
|
||||||
table.entries.Clear();
|
var entriesProp = tableProp.FindPropertyRelative("entries");
|
||||||
|
entriesProp.arraySize = 0;
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
EditorUtility.SetDirty(db);
|
EditorUtility.SetDirty(db);
|
||||||
|
currentPage = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorGUILayout.EndHorizontal();
|
EditorGUILayout.EndHorizontal();
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
EditorGUILayout.Space();
|
||||||
|
|
||||||
if (table.entries != null)
|
var entries = tableProp.FindPropertyRelative("entries");
|
||||||
|
if (entries != null)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < table.entries.Count; ++i)
|
int total = entries.arraySize;
|
||||||
|
int totalPages = Mathf.Max(1, (total + itemsPerPage - 1) / itemsPerPage);
|
||||||
|
currentPage = Mathf.Clamp(currentPage, 0, totalPages - 1);
|
||||||
|
|
||||||
|
// Pagination controls
|
||||||
|
EditorGUILayout.BeginHorizontal();
|
||||||
|
if (GUILayout.Button("<<", GUILayout.Width(40))) { currentPage = 0; }
|
||||||
|
if (GUILayout.Button("<", GUILayout.Width(40))) { currentPage = Mathf.Max(0, currentPage - 1); }
|
||||||
|
|
||||||
|
GUILayout.FlexibleSpace();
|
||||||
|
EditorGUILayout.LabelField(string.Format("Page {0}/{1}", currentPage + 1, totalPages), GUILayout.Width(100));
|
||||||
|
GUILayout.FlexibleSpace();
|
||||||
|
|
||||||
|
if (GUILayout.Button(">", GUILayout.Width(40))) { currentPage = Mathf.Min(totalPages - 1, currentPage + 1); }
|
||||||
|
if (GUILayout.Button(">>", GUILayout.Width(40))) { currentPage = totalPages - 1; }
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
EditorGUILayout.Space(4);
|
||||||
|
|
||||||
|
int start = currentPage * itemsPerPage;
|
||||||
|
int end = Mathf.Min(start + itemsPerPage, total);
|
||||||
|
|
||||||
|
for (int i = start; i < end; ++i)
|
||||||
{
|
{
|
||||||
var e = table.entries[i];
|
var eProp = entries.GetArrayElementAtIndex(i);
|
||||||
if (e == null) continue;
|
if (eProp == null) continue;
|
||||||
|
|
||||||
EditorGUILayout.BeginHorizontal(GUILayout.Height(64));
|
using (new EditorGUILayout.HorizontalScope("box"))
|
||||||
if (e.Sprite != null)
|
|
||||||
{
|
{
|
||||||
Texture2D preview = AssetPreview.GetAssetPreview(e.Sprite);
|
// Left column: sprite preview (fixed width)
|
||||||
if (preview == null) preview = AssetPreview.GetMiniThumbnail(e.Sprite);
|
using (new EditorGUILayout.VerticalScope(GUILayout.Width(80)))
|
||||||
if (preview != null) GUILayout.Label(preview, GUILayout.Width(64), GUILayout.Height(64));
|
|
||||||
else EditorGUILayout.ObjectField(e.Sprite, typeof(Sprite), false, GUILayout.Width(64), GUILayout.Height(64));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EditorGUILayout.ObjectField(null, typeof(Sprite), false, GUILayout.Width(64), GUILayout.Height(64));
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.BeginVertical();
|
|
||||||
EditorGUILayout.LabelField(e.Sprite != null ? e.Sprite.name : "<missing>", EditorStyles.boldLabel);
|
|
||||||
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
|
||||||
EditorGUILayout.LabelField("ControlPath", GUILayout.Width(80));
|
|
||||||
EditorGUILayout.SelectableLabel(e.controlPath ?? string.Empty, GUILayout.Height(16), GUILayout.Width(300));
|
|
||||||
|
|
||||||
Rect btnRect = GUILayoutUtility.GetRect(60, 18, GUILayout.Width(60));
|
|
||||||
if (GUI.Button(btnRect, "Bind"))
|
|
||||||
{
|
|
||||||
ControlPathPickerPopup.ShowDropdown(btnRect, curDevice, (selectedPath) =>
|
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(selectedPath))
|
var spriteProp = eProp.FindPropertyRelative("Sprite");
|
||||||
|
Sprite s = spriteProp.objectReferenceValue as Sprite;
|
||||||
|
EditorGUILayout.LabelField(s != null ? s.name : "<missing>", EditorStyles.boldLabel);
|
||||||
|
|
||||||
|
if (s != null)
|
||||||
{
|
{
|
||||||
e.controlPath = selectedPath;
|
Texture2D preview = AssetPreview.GetAssetPreview(s);
|
||||||
EditorUtility.SetDirty(db);
|
if (preview == null) preview = AssetPreview.GetMiniThumbnail(s);
|
||||||
AssetDatabase.SaveAssets();
|
if (preview != null)
|
||||||
|
{
|
||||||
|
GUILayout.Label(preview, GUILayout.Width(64), GUILayout.Height(64));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EditorGUILayout.PropertyField(spriteProp, GUIContent.none, GUILayout.Width(64), GUILayout.Height(64));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
else
|
||||||
|
{
|
||||||
|
EditorGUILayout.PropertyField(spriteProp, GUIContent.none, GUILayout.Width(64), GUILayout.Height(64));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Right column: path + action should take the remaining width
|
||||||
|
EditorGUILayout.BeginVertical();
|
||||||
|
|
||||||
|
var pathProp = eProp.FindPropertyRelative("controlPath");
|
||||||
|
var actionProp = eProp.FindPropertyRelative("action");
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(pathProp, GUIContent.none, GUILayout.ExpandWidth(true));
|
||||||
|
|
||||||
|
EditorGUILayout.Space(2);
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(actionProp, GUIContent.none, GUILayout.ExpandWidth(true));
|
||||||
|
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GUILayout.Button("Clear", GUILayout.Width(48)))
|
|
||||||
{
|
|
||||||
e.controlPath = string.Empty;
|
|
||||||
EditorUtility.SetDirty(db);
|
|
||||||
AssetDatabase.SaveAssets();
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
|
|
||||||
EditorGUILayout.EndVertical();
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
EditorGUILayout.Space(6);
|
EditorGUILayout.Space(6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
|
||||||
if (GUILayout.Button("Add Entry"))
|
|
||||||
{
|
|
||||||
table.entries.Add(new GlyphEntry { Sprite = null, controlPath = string.Empty });
|
|
||||||
EditorUtility.SetDirty(db);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GUILayout.Button("Remove Nulls"))
|
|
||||||
{
|
|
||||||
table.entries.RemoveAll(x => x == null || x.Sprite == null);
|
|
||||||
EditorUtility.SetDirty(db);
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
|
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
EditorGUILayout.Space();
|
||||||
if (GUILayout.Button("Save Asset"))
|
if (GUILayout.Button("Save Asset"))
|
||||||
{
|
{
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
EditorUtility.SetDirty(db);
|
EditorUtility.SetDirty(db);
|
||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
}
|
}
|
||||||
@ -143,31 +173,78 @@ public class InputGlyphDatabaseEditor : Editor
|
|||||||
serializedObject.ApplyModifiedProperties();
|
serializedObject.ApplyModifiedProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure a table for the device exists. Uses serialized properties (adds element if necessary).
|
||||||
void EnsureTableFor(InputDeviceWatcher.InputDeviceCategory device)
|
void EnsureTableFor(InputDeviceWatcher.InputDeviceCategory device)
|
||||||
{
|
{
|
||||||
if (db.GetTable(device) == null)
|
if (tablesProp == null) return;
|
||||||
|
|
||||||
|
// Search existing entries
|
||||||
|
for (int i = 0; i < tablesProp.arraySize; ++i)
|
||||||
{
|
{
|
||||||
var t = new DeviceGlyphTable { deviceType = device, tmpAsset = null, entries = new List<GlyphEntry>() };
|
var t = tablesProp.GetArrayElementAtIndex(i);
|
||||||
db.tables.Add(t);
|
var devProp = t.FindPropertyRelative("deviceType");
|
||||||
EditorUtility.SetDirty(db);
|
if (devProp != null && devProp.enumValueIndex == (int)device)
|
||||||
|
return; // exists
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Not found -> append new element
|
||||||
|
int idx = tablesProp.arraySize;
|
||||||
|
tablesProp.InsertArrayElementAtIndex(idx); // Inserts a copy if exists, otherwise default
|
||||||
|
var newTable = tablesProp.GetArrayElementAtIndex(idx);
|
||||||
|
|
||||||
|
var deviceTypeProp = newTable.FindPropertyRelative("deviceType");
|
||||||
|
if (deviceTypeProp != null) deviceTypeProp.enumValueIndex = (int)device;
|
||||||
|
|
||||||
|
var tmpAssetProp = newTable.FindPropertyRelative("tmpAsset");
|
||||||
|
if (tmpAssetProp != null) tmpAssetProp.objectReferenceValue = null;
|
||||||
|
|
||||||
|
var entriesProp = newTable.FindPropertyRelative("entries");
|
||||||
|
if (entriesProp != null) entriesProp.arraySize = 0;
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
EditorUtility.SetDirty(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ParseTMPAssetIntoTable(DeviceGlyphTable table)
|
// Return the SerializedProperty representing the DeviceGlyphTable that matches device
|
||||||
|
SerializedProperty GetTablePropertyFor(InputDeviceWatcher.InputDeviceCategory device)
|
||||||
{
|
{
|
||||||
if (table == null || table.tmpAsset == null) return;
|
if (tablesProp == null) return null;
|
||||||
var asset = table.tmpAsset;
|
for (int i = 0; i < tablesProp.arraySize; ++i)
|
||||||
table.entries = new List<GlyphEntry>();
|
{
|
||||||
|
var t = tablesProp.GetArrayElementAtIndex(i);
|
||||||
|
var devProp = t.FindPropertyRelative("deviceType");
|
||||||
|
if (devProp != null && devProp.enumValueIndex == (int)device)
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse TMP Sprite Asset and populate entries (serialized)
|
||||||
|
void ParseTMPAssetIntoTableSerialized(SerializedProperty tableProp)
|
||||||
|
{
|
||||||
|
if (tableProp == null) return;
|
||||||
|
var tmpAssetProp = tableProp.FindPropertyRelative("tmpAsset");
|
||||||
|
var asset = tmpAssetProp.objectReferenceValue as TMP_SpriteAsset;
|
||||||
|
if (asset == null) return;
|
||||||
|
|
||||||
|
var entriesProp = tableProp.FindPropertyRelative("entries");
|
||||||
|
if (entriesProp == null) return;
|
||||||
|
|
||||||
|
entriesProp.arraySize = 0;
|
||||||
|
|
||||||
var chars = asset.spriteCharacterTable;
|
var chars = asset.spriteCharacterTable;
|
||||||
SpriteAtlas atlas = GetSpriteAtlasFromTMP(asset);
|
SpriteAtlas atlas = GetSpriteAtlasFromTMP(asset);
|
||||||
string assetPath = AssetDatabase.GetAssetPath(asset);
|
string assetPath = AssetDatabase.GetAssetPath(asset);
|
||||||
string assetFolder = Path.GetDirectoryName(assetPath);
|
string assetFolder = Path.GetDirectoryName(assetPath);
|
||||||
|
|
||||||
for (int i = 0; i < chars.Count; ++i)
|
for (int i = 0; i < chars.Count; ++i)
|
||||||
{
|
{
|
||||||
var ch = chars[i];
|
var ch = chars[i];
|
||||||
if (ch == null) continue;
|
if (ch == null) continue;
|
||||||
var name = ch.name;
|
var name = ch.name;
|
||||||
if (string.IsNullOrEmpty(name)) continue;
|
if (string.IsNullOrEmpty(name)) continue;
|
||||||
|
|
||||||
Sprite s = null;
|
Sprite s = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -193,7 +270,7 @@ public class InputGlyphDatabaseEditor : Editor
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var m = typeof(SpriteAtlas).GetMethod("GetSprite", new System.Type[] { typeof(string) });
|
var m = typeof(SpriteAtlas).GetMethod("GetSprite", new Type[] { typeof(string) });
|
||||||
if (m != null) s = m.Invoke(atlas, new object[] { name }) as Sprite;
|
if (m != null) s = m.Invoke(atlas, new object[] { name }) as Sprite;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@ -238,9 +315,19 @@ public class InputGlyphDatabaseEditor : Editor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
table.entries.Add(new GlyphEntry { Sprite = s, controlPath = string.Empty });
|
// Create new entry and assign fields
|
||||||
|
int newIndex = entriesProp.arraySize;
|
||||||
|
entriesProp.InsertArrayElementAtIndex(newIndex);
|
||||||
|
var entryProp = entriesProp.GetArrayElementAtIndex(newIndex);
|
||||||
|
|
||||||
|
var spriteProp = entryProp.FindPropertyRelative("Sprite");
|
||||||
|
var controlPathProp = entryProp.FindPropertyRelative("controlPath");
|
||||||
|
|
||||||
|
if (spriteProp != null) spriteProp.objectReferenceValue = s;
|
||||||
|
if (controlPathProp != null) controlPathProp.stringValue = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
EditorUtility.SetDirty(db);
|
EditorUtility.SetDirty(db);
|
||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
}
|
}
|
||||||
@ -276,365 +363,3 @@ public class InputGlyphDatabaseEditor : Editor
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class ControlPathPickerPopup : EditorWindow
|
|
||||||
{
|
|
||||||
InputDeviceWatcher.InputDeviceCategory device;
|
|
||||||
Action<string> onSelect;
|
|
||||||
string search = "";
|
|
||||||
Vector2 scroll;
|
|
||||||
Dictionary<string, List<string>> groups = new Dictionary<string, List<string>>();
|
|
||||||
Dictionary<string, List<string>> displayGroups = new Dictionary<string, List<string>>();
|
|
||||||
Dictionary<string, bool> foldouts = new Dictionary<string, bool>();
|
|
||||||
bool listening = false;
|
|
||||||
IDisposable anyButtonSubscription;
|
|
||||||
|
|
||||||
public static void ShowDropdown(Rect anchorRect, InputDeviceWatcher.InputDeviceCategory device, Action<string> onSelect)
|
|
||||||
{
|
|
||||||
var w = CreateInstance<ControlPathPickerPopup>();
|
|
||||||
w.device = device;
|
|
||||||
w.onSelect = onSelect;
|
|
||||||
w.titleContent = new GUIContent("Pick Control Path");
|
|
||||||
w.minSize = new Vector2(480, 420);
|
|
||||||
w.InitListsDynamic();
|
|
||||||
w.ShowAsDropDown(anchorRect, new Vector2(480, 420));
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
EditorApplication.update += EditorUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
StopListening();
|
|
||||||
EditorApplication.update -= EditorUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditorUpdate()
|
|
||||||
{
|
|
||||||
if (listening) Repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------- 动态构建列表 --------------------
|
|
||||||
void InitListsDynamic()
|
|
||||||
{
|
|
||||||
groups.Clear();
|
|
||||||
displayGroups.Clear();
|
|
||||||
foldouts.Clear();
|
|
||||||
|
|
||||||
// 首先插入一些基本的静态分组占位(如果需要)
|
|
||||||
var known = new[] { "Keyboard", "Gamepad", "Mouse", "Joystick", "Touchscreen", "XR Controller", "XR HMD", "Pointer", "Pen", "Other" };
|
|
||||||
foreach (var k in known)
|
|
||||||
{
|
|
||||||
groups[k] = new List<string>();
|
|
||||||
displayGroups[k] = new List<string>();
|
|
||||||
foldouts[k] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 列出所有已注册布局名称
|
|
||||||
IEnumerable<string> layoutNames;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
layoutNames = InputSystem.ListLayouts();
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
layoutNames = Enumerable.Empty<string>();
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var layoutName in layoutNames)
|
|
||||||
{
|
|
||||||
InputControlLayout layout = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
layout = InputSystem.LoadLayout(layoutName);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
layout = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (layout == null) continue;
|
|
||||||
|
|
||||||
// 遍历 layout.controls (InputControlLayout.ControlItem)
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var controls = layout.controls;
|
|
||||||
if (controls.Count == 0) continue;
|
|
||||||
foreach (var ci in controls)
|
|
||||||
{
|
|
||||||
// isModifyingExistingControl 表示这个 control 只是修改已有 control 的属性,不引入新的控制项,通常跳过
|
|
||||||
if (ci.isModifyingExistingControl) continue;
|
|
||||||
|
|
||||||
string controlName = ci.name.ToString();
|
|
||||||
if (string.IsNullOrEmpty(controlName)) continue;
|
|
||||||
|
|
||||||
string path = $"<{layoutName}>/{controlName}";
|
|
||||||
|
|
||||||
// 决定分组:根据 layoutName 或 controlName 做简单匹配
|
|
||||||
string group = DecideGroupForLayout(layoutName, controlName);
|
|
||||||
|
|
||||||
if (!groups.ContainsKey(group))
|
|
||||||
{
|
|
||||||
groups[group] = new List<string>();
|
|
||||||
displayGroups[group] = new List<string>();
|
|
||||||
foldouts[group] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 防重复
|
|
||||||
if (!groups[group].Contains(path))
|
|
||||||
{
|
|
||||||
groups[group].Add(path);
|
|
||||||
displayGroups[group].Add($"{controlName} ({path})");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 试着添加常见的子项(例如 stick/up/down 等),如果 controlItem 标识这些为子控制可能需要额外处理
|
|
||||||
// 但大多数情况下 layout.controls 已包含独立条目如 leftStick/up
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
/* 忽略个别布局异常 */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 额外补充:把一些常用手动添加的路径放到 Gamepad / Keyboard 中,防止某些 layout 未定义具体按钮
|
|
||||||
AddFallbackCommonPaths();
|
|
||||||
}
|
|
||||||
|
|
||||||
string DecideGroupForLayout(string layoutName, string controlName)
|
|
||||||
{
|
|
||||||
var lname = layoutName.ToLowerInvariant();
|
|
||||||
if (lname.Contains("keyboard")) return "Keyboard";
|
|
||||||
if (lname.Contains("gamepad") || lname.Contains("xbox") || lname.Contains("dualshock") || lname.Contains("controller")) return "Gamepad";
|
|
||||||
if (lname.Contains("mouse")) return "Mouse";
|
|
||||||
if (lname.Contains("joystick")) return "Joystick";
|
|
||||||
if (lname.Contains("touchscreen")) return "Touchscreen";
|
|
||||||
if (lname.Contains("xr") || lname.Contains("hmd")) return "XR Controller";
|
|
||||||
return "Other";
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddFallbackCommonPaths()
|
|
||||||
{
|
|
||||||
void addIfMissing(string grp, string path, string label = null)
|
|
||||||
{
|
|
||||||
if (!groups.ContainsKey(grp))
|
|
||||||
{
|
|
||||||
groups[grp] = new List<string>();
|
|
||||||
displayGroups[grp] = new List<string>();
|
|
||||||
foldouts[grp] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!groups[grp].Contains(path))
|
|
||||||
{
|
|
||||||
groups[grp].Add(path);
|
|
||||||
displayGroups[grp].Add(label ?? path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/buttonSouth");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/buttonEast");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/buttonWest");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/buttonNorth");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/leftShoulder");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/rightShoulder");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/leftTrigger");
|
|
||||||
addIfMissing("Gamepad", "<Gamepad>/rightTrigger");
|
|
||||||
addIfMissing("Keyboard", "<Keyboard>/space");
|
|
||||||
addIfMissing("Keyboard", "<Keyboard>/enter");
|
|
||||||
addIfMissing("Keyboard", "<Keyboard>/escape");
|
|
||||||
addIfMissing("Mouse", "<Mouse>/leftButton");
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------- UI --------------------
|
|
||||||
void OnGUI()
|
|
||||||
{
|
|
||||||
EditorGUILayout.BeginVertical();
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
|
||||||
var prevColor = GUI.color;
|
|
||||||
search = EditorGUILayout.TextField(search, GUILayout.ExpandWidth(true));
|
|
||||||
if (!listening)
|
|
||||||
{
|
|
||||||
if (GUILayout.Button("Listen", GUILayout.Width(72)))
|
|
||||||
{
|
|
||||||
StartListening();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GUI.color = Color.yellow;
|
|
||||||
if (GUILayout.Button("Stop", GUILayout.Width(72)))
|
|
||||||
{
|
|
||||||
StopListening();
|
|
||||||
}
|
|
||||||
|
|
||||||
GUI.color = prevColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
|
|
||||||
scroll = EditorGUILayout.BeginScrollView(scroll);
|
|
||||||
foreach (var kv in displayGroups.OrderBy(k => k.Key))
|
|
||||||
{
|
|
||||||
string cat = kv.Key;
|
|
||||||
if (!ShouldShowCategory(cat)) continue;
|
|
||||||
|
|
||||||
foldouts.TryGetValue(cat, out bool f);
|
|
||||||
f = EditorGUILayout.Foldout(f, cat, true);
|
|
||||||
foldouts[cat] = f;
|
|
||||||
if (!f) continue;
|
|
||||||
|
|
||||||
var displays = kv.Value;
|
|
||||||
var vals = groups[cat];
|
|
||||||
for (int i = 0; i < displays.Count; ++i)
|
|
||||||
{
|
|
||||||
var dsp = displays[i];
|
|
||||||
var val = vals[i];
|
|
||||||
if (!MatchSearch(dsp, val)) continue;
|
|
||||||
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
|
||||||
if (GUILayout.Button("Select", GUILayout.Width(64)))
|
|
||||||
{
|
|
||||||
onSelect?.Invoke(val);
|
|
||||||
Close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.LabelField(dsp, GUILayout.ExpandWidth(true));
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.Space(6);
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.EndScrollView();
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
GUILayout.FlexibleSpace();
|
|
||||||
if (GUILayout.Button("Close")) Close();
|
|
||||||
EditorGUILayout.EndVertical();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ShouldShowCategory(string cat)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(search)) return true;
|
|
||||||
if (cat.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0) return true;
|
|
||||||
var disp = displayGroups[cat];
|
|
||||||
for (int i = 0; i < disp.Count; ++i)
|
|
||||||
if (MatchSearch(disp[i], groups[cat][i]))
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MatchSearch(string display, string value)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(search)) return true;
|
|
||||||
if (display.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0) return true;
|
|
||||||
if (value.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------- Listen (使用 IObserver<T> 订阅) --------------------
|
|
||||||
class InputControlObserver : IObserver<InputControl>
|
|
||||||
{
|
|
||||||
readonly Action<InputControl> onNext;
|
|
||||||
|
|
||||||
public InputControlObserver(Action<InputControl> onNext)
|
|
||||||
{
|
|
||||||
this.onNext = onNext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnCompleted()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnError(Exception error)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnNext(InputControl value)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
onNext?.Invoke(value);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void StartListening()
|
|
||||||
{
|
|
||||||
if (listening) return;
|
|
||||||
listening = true;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// 使用 IObserver<InputControl> 订阅(通用、可靠)
|
|
||||||
anyButtonSubscription = InputSystem.onAnyButtonPress.Subscribe(new InputControlObserver(control =>
|
|
||||||
{
|
|
||||||
if (control == null) return;
|
|
||||||
string path = control.path;
|
|
||||||
onSelect?.Invoke(path);
|
|
||||||
StopListening();
|
|
||||||
Close();
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
// 某些版本/包装可能提供 Call/CallOnce 扩展方法(Utilities),尝试反射调用这些扩展
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var t = typeof(InputSystem);
|
|
||||||
var prop = t.GetProperty("onAnyButtonPress");
|
|
||||||
if (prop != null)
|
|
||||||
{
|
|
||||||
var obs = prop.GetValue(null);
|
|
||||||
var callMethod = obs?.GetType().GetMethod("CallOnce") ?? obs?.GetType().GetMethod("Call");
|
|
||||||
if (callMethod != null)
|
|
||||||
{
|
|
||||||
// 尝试调用 CallOnce(Action<InputControl>)
|
|
||||||
callMethod.Invoke(obs, new object[]
|
|
||||||
{
|
|
||||||
new Action<InputControl>(c =>
|
|
||||||
{
|
|
||||||
if (c == null) return;
|
|
||||||
onSelect?.Invoke(c.path);
|
|
||||||
StopListening();
|
|
||||||
Close();
|
|
||||||
})
|
|
||||||
});
|
|
||||||
StopListening();
|
|
||||||
Close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果都失败,简单关闭监听状态
|
|
||||||
listening = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopListening()
|
|
||||||
{
|
|
||||||
if (!listening) return;
|
|
||||||
listening = false;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
anyButtonSubscription?.Dispose();
|
|
||||||
anyButtonSubscription = null;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
anyButtonSubscription = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 01024066686deed8d8077c6cbc83f558d6af2360
|
Subproject commit e51e3e78e4776fbd6b3ddfa8f917828cb70e0162
|
||||||
@ -19,64 +19,12 @@ MonoBehaviour:
|
|||||||
width: 1920
|
width: 1920
|
||||||
height: 997
|
height: 997
|
||||||
m_ShowMode: 4
|
m_ShowMode: 4
|
||||||
m_Title: Hierarchy
|
m_Title: Inspector
|
||||||
m_RootView: {fileID: 4}
|
m_RootView: {fileID: 2}
|
||||||
m_MinSize: {x: 875, y: 300}
|
m_MinSize: {x: 875, y: 300}
|
||||||
m_MaxSize: {x: 10000, y: 10000}
|
m_MaxSize: {x: 10000, y: 10000}
|
||||||
m_Maximized: 1
|
m_Maximized: 1
|
||||||
--- !u!114 &2
|
--- !u!114 &2
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 52
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 0}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_Name: GameView
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Children: []
|
|
||||||
m_Position:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 631
|
|
||||||
width: 519
|
|
||||||
height: 316
|
|
||||||
m_MinSize: {x: 51, y: 71}
|
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
|
||||||
m_ActualView: {fileID: 14}
|
|
||||||
m_Panes:
|
|
||||||
- {fileID: 14}
|
|
||||||
m_Selected: 0
|
|
||||||
m_LastSelected: 0
|
|
||||||
--- !u!114 &3
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 52
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 0}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 8}
|
|
||||||
- {fileID: 2}
|
|
||||||
m_Position:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 519
|
|
||||||
height: 947
|
|
||||||
m_MinSize: {x: 100, y: 100}
|
|
||||||
m_MaxSize: {x: 8096, y: 16192}
|
|
||||||
vertical: 1
|
|
||||||
controlID: 6203
|
|
||||||
draggingID: 0
|
|
||||||
--- !u!114 &4
|
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -89,9 +37,9 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Children:
|
m_Children:
|
||||||
|
- {fileID: 3}
|
||||||
- {fileID: 5}
|
- {fileID: 5}
|
||||||
- {fileID: 7}
|
- {fileID: 4}
|
||||||
- {fileID: 6}
|
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
@ -104,7 +52,7 @@ MonoBehaviour:
|
|||||||
m_TopViewHeight: 30
|
m_TopViewHeight: 30
|
||||||
m_UseBottomView: 1
|
m_UseBottomView: 1
|
||||||
m_BottomViewHeight: 20
|
m_BottomViewHeight: 20
|
||||||
--- !u!114 &5
|
--- !u!114 &3
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -126,7 +74,7 @@ MonoBehaviour:
|
|||||||
m_MinSize: {x: 0, y: 0}
|
m_MinSize: {x: 0, y: 0}
|
||||||
m_MaxSize: {x: 0, y: 0}
|
m_MaxSize: {x: 0, y: 0}
|
||||||
m_LastLoadedLayoutName:
|
m_LastLoadedLayoutName:
|
||||||
--- !u!114 &6
|
--- !u!114 &4
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -147,7 +95,7 @@ MonoBehaviour:
|
|||||||
height: 20
|
height: 20
|
||||||
m_MinSize: {x: 0, y: 0}
|
m_MinSize: {x: 0, y: 0}
|
||||||
m_MaxSize: {x: 0, y: 0}
|
m_MaxSize: {x: 0, y: 0}
|
||||||
--- !u!114 &7
|
--- !u!114 &5
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -160,7 +108,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3}
|
- {fileID: 6}
|
||||||
- {fileID: 9}
|
- {fileID: 9}
|
||||||
- {fileID: 12}
|
- {fileID: 12}
|
||||||
- {fileID: 13}
|
- {fileID: 13}
|
||||||
@ -173,9 +121,35 @@ MonoBehaviour:
|
|||||||
m_MinSize: {x: 400, y: 100}
|
m_MinSize: {x: 400, y: 100}
|
||||||
m_MaxSize: {x: 32384, y: 16192}
|
m_MaxSize: {x: 32384, y: 16192}
|
||||||
vertical: 0
|
vertical: 0
|
||||||
controlID: 127
|
controlID: 46181
|
||||||
draggingID: 0
|
draggingID: 0
|
||||||
--- !u!114 &8
|
--- !u!114 &6
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 52
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 7}
|
||||||
|
- {fileID: 8}
|
||||||
|
m_Position:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 383
|
||||||
|
height: 947
|
||||||
|
m_MinSize: {x: 100, y: 100}
|
||||||
|
m_MaxSize: {x: 8096, y: 16192}
|
||||||
|
vertical: 1
|
||||||
|
controlID: 46011
|
||||||
|
draggingID: 0
|
||||||
|
--- !u!114 &7
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -192,16 +166,42 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 519
|
width: 383
|
||||||
height: 631
|
height: 363
|
||||||
m_MinSize: {x: 201, y: 221}
|
m_MinSize: {x: 200, y: 200}
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
m_MaxSize: {x: 4000, y: 4000}
|
||||||
m_ActualView: {fileID: 16}
|
m_ActualView: {fileID: 16}
|
||||||
m_Panes:
|
m_Panes:
|
||||||
- {fileID: 15}
|
- {fileID: 15}
|
||||||
- {fileID: 16}
|
- {fileID: 16}
|
||||||
m_Selected: 1
|
m_Selected: 1
|
||||||
m_LastSelected: 0
|
m_LastSelected: 0
|
||||||
|
--- !u!114 &8
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 52
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Name: GameView
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Children: []
|
||||||
|
m_Position:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 363
|
||||||
|
width: 383
|
||||||
|
height: 584
|
||||||
|
m_MinSize: {x: 50, y: 50}
|
||||||
|
m_MaxSize: {x: 4000, y: 4000}
|
||||||
|
m_ActualView: {fileID: 14}
|
||||||
|
m_Panes:
|
||||||
|
- {fileID: 14}
|
||||||
|
m_Selected: 0
|
||||||
|
m_LastSelected: 0
|
||||||
--- !u!114 &9
|
--- !u!114 &9
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -219,14 +219,14 @@ MonoBehaviour:
|
|||||||
- {fileID: 11}
|
- {fileID: 11}
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 519
|
x: 383
|
||||||
y: 0
|
y: 0
|
||||||
width: 500
|
width: 213
|
||||||
height: 947
|
height: 947
|
||||||
m_MinSize: {x: 100, y: 100}
|
m_MinSize: {x: 100, y: 100}
|
||||||
m_MaxSize: {x: 8096, y: 16192}
|
m_MaxSize: {x: 8096, y: 16192}
|
||||||
vertical: 1
|
vertical: 1
|
||||||
controlID: 45
|
controlID: 46071
|
||||||
draggingID: 0
|
draggingID: 0
|
||||||
--- !u!114 &10
|
--- !u!114 &10
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@ -245,10 +245,10 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 500
|
width: 213
|
||||||
height: 539
|
height: 601
|
||||||
m_MinSize: {x: 202, y: 221}
|
m_MinSize: {x: 200, y: 200}
|
||||||
m_MaxSize: {x: 4002, y: 4021}
|
m_MaxSize: {x: 4000, y: 4000}
|
||||||
m_ActualView: {fileID: 17}
|
m_ActualView: {fileID: 17}
|
||||||
m_Panes:
|
m_Panes:
|
||||||
- {fileID: 17}
|
- {fileID: 17}
|
||||||
@ -270,11 +270,11 @@ MonoBehaviour:
|
|||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 539
|
y: 601
|
||||||
width: 500
|
width: 213
|
||||||
height: 408
|
height: 346
|
||||||
m_MinSize: {x: 102, y: 121}
|
m_MinSize: {x: 100, y: 100}
|
||||||
m_MaxSize: {x: 4002, y: 4021}
|
m_MaxSize: {x: 4000, y: 4000}
|
||||||
m_ActualView: {fileID: 18}
|
m_ActualView: {fileID: 18}
|
||||||
m_Panes:
|
m_Panes:
|
||||||
- {fileID: 18}
|
- {fileID: 18}
|
||||||
@ -295,9 +295,9 @@ MonoBehaviour:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1019
|
x: 596
|
||||||
y: 0
|
y: 0
|
||||||
width: 184
|
width: 359
|
||||||
height: 947
|
height: 947
|
||||||
m_MinSize: {x: 232, y: 271}
|
m_MinSize: {x: 232, y: 271}
|
||||||
m_MaxSize: {x: 10002, y: 10021}
|
m_MaxSize: {x: 10002, y: 10021}
|
||||||
@ -321,12 +321,12 @@ MonoBehaviour:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1203
|
x: 955
|
||||||
y: 0
|
y: 0
|
||||||
width: 717
|
width: 965
|
||||||
height: 947
|
height: 947
|
||||||
m_MinSize: {x: 276, y: 71}
|
m_MinSize: {x: 275, y: 50}
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
m_MaxSize: {x: 4000, y: 4000}
|
||||||
m_ActualView: {fileID: 20}
|
m_ActualView: {fileID: 20}
|
||||||
m_Panes:
|
m_Panes:
|
||||||
- {fileID: 20}
|
- {fileID: 20}
|
||||||
@ -353,9 +353,9 @@ MonoBehaviour:
|
|||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 704
|
y: 436
|
||||||
width: 518
|
width: 382
|
||||||
height: 295
|
height: 563
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
m_PreferredDataMode: 0
|
m_PreferredDataMode: 0
|
||||||
@ -408,23 +408,23 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 21
|
y: 21
|
||||||
width: 518
|
width: 382
|
||||||
height: 274
|
height: 542
|
||||||
m_Scale: {x: 0.2537037, y: 0.2537037}
|
m_Scale: {x: 0.19895834, y: 0.19895834}
|
||||||
m_Translation: {x: 259, y: 137}
|
m_Translation: {x: 191, y: 271}
|
||||||
m_MarginLeft: 0
|
m_MarginLeft: 0
|
||||||
m_MarginRight: 0
|
m_MarginRight: 0
|
||||||
m_MarginTop: 0
|
m_MarginTop: 0
|
||||||
m_MarginBottom: 0
|
m_MarginBottom: 0
|
||||||
m_LastShownAreaInsideMargins:
|
m_LastShownAreaInsideMargins:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: -1020.87585
|
x: -960
|
||||||
y: -540
|
y: -1362.0942
|
||||||
width: 2041.7517
|
width: 1920
|
||||||
height: 1080
|
height: 2724.1885
|
||||||
m_MinimalGUI: 1
|
m_MinimalGUI: 1
|
||||||
m_defaultScale: 0.2537037
|
m_defaultScale: 0.19895834
|
||||||
m_LastWindowPixelSize: {x: 518, y: 295}
|
m_LastWindowPixelSize: {x: 382, y: 563}
|
||||||
m_ClearInEditMode: 1
|
m_ClearInEditMode: 1
|
||||||
m_NoCameraWarning: 1
|
m_NoCameraWarning: 1
|
||||||
m_LowResolutionForAspectRatios: 01000000000000000000
|
m_LowResolutionForAspectRatios: 01000000000000000000
|
||||||
@ -522,8 +522,8 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 73
|
y: 73
|
||||||
width: 518
|
width: 382
|
||||||
height: 610
|
height: 342
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
m_PreferredDataMode: 0
|
m_PreferredDataMode: 0
|
||||||
@ -538,7 +538,7 @@ MonoBehaviour:
|
|||||||
floating: 0
|
floating: 0
|
||||||
collapsed: 0
|
collapsed: 0
|
||||||
displayed: 1
|
displayed: 1
|
||||||
snapOffset: {x: -174, y: -26}
|
snapOffset: {x: -179, y: -26}
|
||||||
snapOffsetDelta: {x: 0, y: 0}
|
snapOffsetDelta: {x: 0, y: 0}
|
||||||
snapCorner: 3
|
snapCorner: 3
|
||||||
id: Tool Settings
|
id: Tool Settings
|
||||||
@ -616,9 +616,9 @@ MonoBehaviour:
|
|||||||
floating: 0
|
floating: 0
|
||||||
collapsed: 0
|
collapsed: 0
|
||||||
displayed: 1
|
displayed: 1
|
||||||
snapOffset: {x: 24, y: -131}
|
snapOffset: {x: 24, y: 64}
|
||||||
snapOffsetDelta: {x: 0, y: 0}
|
snapOffsetDelta: {x: 0, y: 0}
|
||||||
snapCorner: 2
|
snapCorner: 0
|
||||||
id: Orientation
|
id: Orientation
|
||||||
index: 0
|
index: 0
|
||||||
layout: 4
|
layout: 4
|
||||||
@ -1064,9 +1064,9 @@ MonoBehaviour:
|
|||||||
m_PlayAudio: 0
|
m_PlayAudio: 0
|
||||||
m_AudioPlay: 0
|
m_AudioPlay: 0
|
||||||
m_Position:
|
m_Position:
|
||||||
m_Target: {x: 629.57336, y: 383.6224, z: -7.5886}
|
m_Target: {x: 1241.503, y: 212.77849, z: -0.5889411}
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: {x: 629.57336, y: 383.6224, z: -7.5886}
|
m_Value: {x: 1241.503, y: 212.77849, z: -0.5889411}
|
||||||
m_RenderMode: 0
|
m_RenderMode: 0
|
||||||
m_CameraMode:
|
m_CameraMode:
|
||||||
drawMode: 0
|
drawMode: 0
|
||||||
@ -1116,9 +1116,9 @@ MonoBehaviour:
|
|||||||
speed: 2
|
speed: 2
|
||||||
m_Value: {x: 0, y: 0, z: 0, w: 1}
|
m_Value: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_Size:
|
m_Size:
|
||||||
m_Target: 1006.24756
|
m_Target: 161.9702
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: 1006.24756
|
m_Value: 161.9702
|
||||||
m_Ortho:
|
m_Ortho:
|
||||||
m_Target: 1
|
m_Target: 1
|
||||||
speed: 2
|
speed: 2
|
||||||
@ -1163,10 +1163,10 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 519
|
x: 1
|
||||||
y: 73
|
y: 19
|
||||||
width: 498
|
width: 211
|
||||||
height: 518
|
height: 580
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
m_PreferredDataMode: 0
|
m_PreferredDataMode: 0
|
||||||
@ -1180,23 +1180,23 @@ MonoBehaviour:
|
|||||||
m_SceneHierarchy:
|
m_SceneHierarchy:
|
||||||
m_TreeViewState:
|
m_TreeViewState:
|
||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs:
|
m_SelectedIDs: 5afffeff
|
||||||
m_LastClickedID: 0
|
m_LastClickedID: 0
|
||||||
m_ExpandedIDs: 00f7ffff20f7ffff28fbffff2e6d0000
|
m_ExpandedIDs: 20b1ffff34b1ffff1cfbffffc86d00009e6e0000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name: Dropdown
|
||||||
m_OriginalName:
|
m_OriginalName: Dropdown
|
||||||
m_EditFieldRect:
|
m_EditFieldRect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 0
|
width: 0
|
||||||
height: 0
|
height: 0
|
||||||
m_UserData: 0
|
m_UserData: 28280
|
||||||
m_IsWaitingForDelay: 0
|
m_IsWaitingForDelay: 0
|
||||||
m_IsRenaming: 0
|
m_IsRenaming: 0
|
||||||
m_OriginalEventType: 11
|
m_OriginalEventType: 0
|
||||||
m_IsRenamingFilename: 0
|
m_IsRenamingFilename: 0
|
||||||
m_ClientGUIView: {fileID: 10}
|
m_ClientGUIView: {fileID: 10}
|
||||||
m_SearchString:
|
m_SearchString:
|
||||||
@ -1226,10 +1226,10 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 519
|
x: 1
|
||||||
y: 612
|
y: 620
|
||||||
width: 498
|
width: 211
|
||||||
height: 387
|
height: 325
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
m_PreferredDataMode: 0
|
m_PreferredDataMode: 0
|
||||||
@ -1260,9 +1260,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1019
|
x: 596
|
||||||
y: 73
|
y: 73
|
||||||
width: 182
|
width: 357
|
||||||
height: 926
|
height: 926
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
@ -1284,7 +1284,8 @@ MonoBehaviour:
|
|||||||
m_ShowAllHits: 0
|
m_ShowAllHits: 0
|
||||||
m_SkipHidden: 0
|
m_SkipHidden: 0
|
||||||
m_SearchArea: 0
|
m_SearchArea: 0
|
||||||
m_Folders: []
|
m_Folders:
|
||||||
|
- Assets/InputGlyph
|
||||||
m_Globs: []
|
m_Globs: []
|
||||||
m_OriginalText:
|
m_OriginalText:
|
||||||
m_ImportLogFlags: 0
|
m_ImportLogFlags: 0
|
||||||
@ -1300,7 +1301,7 @@ MonoBehaviour:
|
|||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs: e48c0000
|
m_SelectedIDs: e48c0000
|
||||||
m_LastClickedID: 36068
|
m_LastClickedID: 36068
|
||||||
m_ExpandedIDs: 00000000587000005a7000005c7000005e70000060700000627000006470000066700000687000006a7000006c7000006e70000070700000727000007470000076700000787000007a7000007c7000007e70000080700000827000008470000086700000887000008a7000008c7000008e70000090700000927000009470000096700000987000009a7000009c7000009e700000a0700000a2700000a4700000a6700000a8700000aa700000ac700000ae700000b0700000b2700000b4700000b6700000b8700000ba700000bc700000be700000c0700000c2700000c4700000c6700000c8700000ca700000cc700000ce700000d0700000d2700000d4700000d6700000d8700000da700000dc700000de700000e0700000e2700000e4700000e6700000e8700000ea700000ec700000ee700000f0700000f2700000f4700000f6700000f8700000fa700000fc700000fe70000000710000027100000471000006710000087100000a7100000c7100000e71000010710000127100001471000016710000187100001a7100001c7100001e71000020710000227100002471000026710000287100002a7100002c7100002e71000030710000327100003471000036710000387100003a7100003c7100003e71000040710000427100004471000046710000487100004a7100004c7100004e71000050710000527100005471000056710000587100005a7100005c7100005e71000060710000627100006471000066710000687100006a7100006c7100006e71000070710000727100007471000076710000787100007a7100007c7100007e71000080710000827100008471000086710000887100008a7100008c7100008e71000090710000927100009471000096710000987100009a7100009c7100009e710000a0710000a2710000a4710000a6710000a8710000aa710000ac710000ae710000b0710000b2710000b4710000b6710000b8710000ba710000bc710000be710000c0710000c2710000c4710000c6710000c8710000ca710000cc710000ce710000d0710000d2710000d4710000d6710000d8710000da710000dc710000de710000e0710000e2710000e4710000e6710000e8710000ea710000ec710000ee710000f0710000f2710000f4710000f6710000f8710000fa710000fc710000fe71000000720000027200000472000006720000087200000a7200000c7200000e720000107200001272000014720000
|
m_ExpandedIDs: ffffffff0000000070710000727100007471000076710000787100007a7100007c7100007e71000080710000827100008471000086710000887100008a7100008c7100008e71000090710000927100009471000096710000987100009a7100009c7100009e710000a0710000a2710000a4710000a6710000a8710000aa710000ac710000ae710000b0710000b2710000b4710000b6710000b8710000ba710000bc710000be710000c0710000c2710000c4710000c6710000c8710000ca710000cc710000ce710000d0710000d2710000d4710000d6710000d8710000da710000dc710000de710000e0710000e2710000e4710000e6710000e8710000ea710000ec710000ee710000f0710000f2710000f4710000f6710000f8710000fa710000fc710000fe71000000720000027200000472000006720000087200000a7200000c7200000e72000010720000127200001472000016720000187200001a7200001c7200001e72000020720000227200002472000026720000287200002a7200002c7200002e72000030720000327200003472000036720000387200003a7200003c7200003e72000040720000427200004472000046720000487200004a7200004c7200004e72000050720000527200005472000056720000587200005a7200005c7200005e72000060720000627200006472000066720000687200006a7200006c7200006e72000070720000727200007472000076720000787200007a7200007c7200007e72000080720000827200008472000086720000887200008a7200008c7200008e72000090720000927200009472000096720000987200009a7200009c7200009e720000a0720000a2720000a4720000a6720000a8720000aa720000ac720000ae720000b0720000b2720000b4720000b6720000b8720000ba720000bc720000be720000c0720000c2720000c4720000c6720000c8720000ca720000cc720000ce720000d2720000d4720000d6720000d8720000da720000dc720000de720000e0720000e2720000e4720000e6720000e8720000ea720000ec720000ee720000f0720000f2720000f4720000f8720000fa720000fc720000fe72000000730000027300000473000006730000087300000a7300000c7300000e730000107300001273000014730000167300001a7300001c7300001e730000207300002273000024730000267300002c730000767300008e73000094730000e67300005877000058790000e67c0000047d00000c7d0000de820000e8820000f482000040890000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -1328,21 +1329,21 @@ MonoBehaviour:
|
|||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs:
|
m_SelectedIDs:
|
||||||
m_LastClickedID: 0
|
m_LastClickedID: 0
|
||||||
m_ExpandedIDs: ffffffff00000000587000005a7000005c7000005e70000060700000627000006470000066700000687000006a7000006c7000006e70000070700000727000007470000076700000787000007a7000007c7000007e70000080700000827000008470000086700000887000008a7000008c7000008e70000090700000927000009470000096700000987000009a7000009c7000009e700000a0700000a2700000a4700000a6700000a8700000aa700000ac700000ae700000b0700000b2700000b4700000b6700000b8700000ba700000bc700000be700000c0700000c2700000c4700000c6700000c8700000ca700000cc700000ce700000d0700000d2700000d4700000d6700000d8700000da700000dc700000de700000e0700000e2700000e4700000e6700000e8700000ea700000ec700000ee700000f0700000f2700000f4700000f6700000f8700000fa700000fc700000fe70000000710000027100000471000006710000087100000a7100000c7100000e71000010710000127100001471000016710000187100001a7100001c7100001e71000020710000227100002471000026710000287100002a7100002c7100002e71000030710000327100003471000036710000387100003a7100003c7100003e71000040710000427100004471000046710000487100004a7100004c7100004e71000050710000527100005471000056710000587100005a7100005c7100005e71000060710000627100006471000066710000687100006a7100006c7100006e71000070710000727100007471000076710000787100007a7100007c7100007e71000080710000827100008471000086710000887100008a7100008c7100008e71000090710000927100009471000096710000987100009a7100009c7100009e710000a0710000a2710000a4710000a6710000a8710000aa710000ac710000ae710000b0710000b2710000b4710000b6710000b8710000ba710000bc710000be710000c0710000c2710000c4710000c6710000c8710000ca710000cc710000ce710000d0710000d2710000d4710000d6710000d8710000da710000dc710000de710000e0710000e2710000e4710000e6710000e8710000ea710000ec710000ee710000f0710000f2710000f4710000f6710000f8710000fa710000fc710000fe71000000720000027200000472000006720000087200000a7200000c7200000e720000107200001272000014720000
|
m_ExpandedIDs: ffffffff0000000070710000727100007471000076710000787100007a7100007c7100007e71000080710000827100008471000086710000887100008a7100008c7100008e71000090710000927100009471000096710000987100009a7100009c7100009e710000a0710000a2710000a4710000a6710000a8710000aa710000ac710000ae710000b0710000b2710000b4710000b6710000b8710000ba710000bc710000be710000c0710000c2710000c4710000c6710000c8710000ca710000cc710000ce710000d0710000d2710000d4710000d6710000d8710000da710000dc710000de710000e0710000e2710000e4710000e6710000e8710000ea710000ec710000ee710000f0710000f2710000f4710000f6710000f8710000fa710000fc710000fe71000000720000027200000472000006720000087200000a7200000c7200000e72000010720000127200001472000016720000187200001a7200001c7200001e72000020720000227200002472000026720000287200002a7200002c7200002e72000030720000327200003472000036720000387200003a7200003c7200003e72000040720000427200004472000046720000487200004a7200004c7200004e72000050720000527200005472000056720000587200005a7200005c7200005e72000060720000627200006472000066720000687200006a7200006c7200006e72000070720000727200007472000076720000787200007a7200007c7200007e72000080720000827200008472000086720000887200008a7200008c7200008e72000090720000927200009472000096720000987200009a7200009c7200009e720000a0720000a2720000a4720000a6720000a8720000aa720000ac720000ae720000b0720000b2720000b4720000b6720000b8720000ba720000bc720000be720000c0720000c2720000c4720000c6720000c8720000ca720000cc720000ce720000d2720000d4720000d6720000d8720000da720000dc720000de720000e0720000e2720000e4720000e6720000e8720000ea720000ec720000ee720000f0720000f2720000f4720000f8720000fa720000fc720000fe72000000730000027300000473000006730000087300000a7300000c7300000e730000107300001273000014730000167300001a7300001c7300001e730000207300002273000024730000267300002a7300002c7300007c7300008e73000094730000e6730000587700005e77000058790000e67c0000047d00000c7d0000e88200000083000040890000289b0000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name: InputActionDebug
|
||||||
m_OriginalName:
|
m_OriginalName: InputActionDebug
|
||||||
m_EditFieldRect:
|
m_EditFieldRect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 0
|
width: 0
|
||||||
height: 0
|
height: 0
|
||||||
m_UserData: 0
|
m_UserData: 56070
|
||||||
m_IsWaitingForDelay: 0
|
m_IsWaitingForDelay: 0
|
||||||
m_IsRenaming: 0
|
m_IsRenaming: 0
|
||||||
m_OriginalEventType: 11
|
m_OriginalEventType: 0
|
||||||
m_IsRenamingFilename: 1
|
m_IsRenamingFilename: 1
|
||||||
m_ClientGUIView: {fileID: 12}
|
m_ClientGUIView: {fileID: 12}
|
||||||
m_SearchString:
|
m_SearchString:
|
||||||
@ -1404,9 +1405,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1203
|
x: 955
|
||||||
y: 73
|
y: 73
|
||||||
width: 716
|
width: 964
|
||||||
height: 926
|
height: 926
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
@ -1421,7 +1422,7 @@ MonoBehaviour:
|
|||||||
m_ObjectsLockedBeforeSerialization: []
|
m_ObjectsLockedBeforeSerialization: []
|
||||||
m_InstanceIDsLockedBeforeSerialization:
|
m_InstanceIDsLockedBeforeSerialization:
|
||||||
m_PreviewResizer:
|
m_PreviewResizer:
|
||||||
m_CachedPref: 231
|
m_CachedPref: 151
|
||||||
m_ControlHash: 1412526313
|
m_ControlHash: 1412526313
|
||||||
m_PrefName: Preview_InspectorPreview
|
m_PrefName: Preview_InspectorPreview
|
||||||
m_LastInspectedObjectInstanceID: -1
|
m_LastInspectedObjectInstanceID: -1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user