game: added xr keyboard and npc tags

This commit is contained in:
kookiekenobi 2025-02-15 17:09:00 +08:00
parent f053ef93a1
commit 8de7ee2e24
143 changed files with 26345 additions and 14 deletions

View file

@ -372,6 +372,10 @@ PrefabInstance:
propertyPath: m_Name
value: female1
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 6febe2ed652e82c4e82f36b99d36e554, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: 6febe2ed652e82c4e82f36b99d36e554, type: 3}
m_RemovedGameObjects: []
@ -457,7 +461,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &2998740298100610500
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: female2
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 5322a15b17a89d54387e0ed089c3f36c, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@ -141,7 +145,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &983064869322089050
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: female3
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 55e2055054d94ee4aa07586779090ee5, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: 55e2055054d94ee4aa07586779090ee5, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &7791889074176700212
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: male1
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 208f8e7ee2310474aa57f8901d61d5f6, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: 208f8e7ee2310474aa57f8901d61d5f6, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &1838578987662389455
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: male2
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 8c08f173abfeb6740b1d9707f1bf5a3c, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: 8c08f173abfeb6740b1d9707f1bf5a3c, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &445492437099610315
CapsuleCollider:

View file

@ -56,6 +56,10 @@ PrefabInstance:
propertyPath: m_Name
value: male3
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: e815cd9e50092a54a972db0a7c381b5e, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: e815cd9e50092a54a972db0a7c381b5e, type: 3}
m_RemovedGameObjects: []
@ -138,7 +142,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &6401529236607192820
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: male4
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: bab3991b5f3a46d4ab41482be4494587, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: bab3991b5f3a46d4ab41482be4494587, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &3247625468463647640
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: male5
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: fa019e4b86d491842b5fa525d23d5dc6, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: fa019e4b86d491842b5fa525d23d5dc6, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &8746939936561736175
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: male6
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 71e4c682b22e1934d86e97035c9aad3b, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: 71e4c682b22e1934d86e97035c9aad3b, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &8700583875004195554
CapsuleCollider:

View file

@ -60,6 +60,10 @@ PrefabInstance:
propertyPath: m_Name
value: male7
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 067304c8fbfe24149a9b200ce3ebe428, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 5866666021909216657, guid: 067304c8fbfe24149a9b200ce3ebe428, type: 3}
m_RemovedGameObjects: []
@ -142,7 +146,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!136 &1190395221599031288
CapsuleCollider:

View file

@ -64,6 +64,10 @@ PrefabInstance:
propertyPath: m_Name
value: police
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 383875a814f17c444bb652cf8d898ef4, type: 3}
propertyPath: m_TagString
value: NPC
objectReference: {fileID: 0}
- target: {fileID: 5866666021909216657, guid: 383875a814f17c444bb652cf8d898ef4, type: 3}
propertyPath: m_Avatar
value:
@ -157,7 +161,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
agent: {fileID: 0}
desk: {fileID: 0}
animator: {fileID: 0}
--- !u!195 &146904424308101253
NavMeshAgent:

View file

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

View file

@ -0,0 +1,4 @@
{
"displayName": "Spatial Keyboard",
"description": "Virtual spatial keyboard to allow for text entry in a world space UI. This interactable keyboard can be used in your app instead of the platform's system keyboard."
}

View file

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

View file

@ -0,0 +1,66 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: b53eb82258e249bb97cf3789c6a97dda, type: 3}
m_Name: BlendShapeAffordance
m_EditorClassIdentifier:
m_Comments:
m_ReadOnly: 1
m_Value:
m_StateAnimationCurve:
m_UseConstant: 1
m_ConstantValue:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_Variable: {fileID: 0}
m_List:
- stateName: disabled
animationStateStartValue: 0
animationStateEndValue: 0
- stateName: idle
animationStateStartValue: 5
animationStateEndValue: 5
- stateName: hovered
animationStateStartValue: 15
animationStateEndValue: 15
- stateName: hoveredPriority
animationStateStartValue: 0
animationStateEndValue: 0
- stateName: selected
animationStateStartValue: 15
animationStateEndValue: 15
- stateName: activated
animationStateStartValue: 0
animationStateEndValue: 0
- stateName: focused
animationStateStartValue: 0
animationStateEndValue: 0

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 37a719930348de649a3f10a8836c6a50
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,68 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: b5d80f45fb5f4418a5e84a476e517628, type: 3}
m_Name: GrabHandleColorAffordanceTheme
m_EditorClassIdentifier:
m_Comments:
m_ReadOnly: 1
m_Value:
m_StateAnimationCurve:
m_UseConstant: 1
m_ConstantValue:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_Variable: {fileID: 0}
m_List:
- stateName: disabled
animationStateStartValue: {r: 0, g: 0, b: 0, a: 0}
animationStateEndValue: {r: 0, g: 0, b: 0, a: 0}
- stateName: idle
animationStateStartValue: {r: 1, g: 1, b: 1, a: 1}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 1}
- stateName: hovered
animationStateStartValue: {r: 0.09411766, g: 0.43921572, b: 0.7137255, a: 1}
animationStateEndValue: {r: 0.09411766, g: 0.43921572, b: 0.7137255, a: 1}
- stateName: hoveredPriority
animationStateStartValue: {r: 0, g: 0, b: 0, a: 0}
animationStateEndValue: {r: 0, g: 0, b: 0, a: 0}
- stateName: selected
animationStateStartValue: {r: 0.1254902, g: 0.5882353, b: 0.95294124, a: 1}
animationStateEndValue: {r: 0.1254902, g: 0.5882353, b: 0.95294124, a: 1}
- stateName: activated
animationStateStartValue: {r: 0.56078434, g: 0.7960785, b: 0.97647065, a: 0}
animationStateEndValue: {r: 0.56078434, g: 0.7960785, b: 0.97647065, a: 0}
- stateName: focused
animationStateStartValue: {r: 0.56078434, g: 0.7960785, b: 0.97647065, a: 0}
animationStateEndValue: {r: 0.56078434, g: 0.7960785, b: 0.97647065, a: 0}
m_ColorBlendMode: 0
m_BlendAmount: 1

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ad4e83cc4eb3a974993a5a183887e287
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,68 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: b5d80f45fb5f4418a5e84a476e517628, type: 3}
m_Name: ScaleHandleColorAffordanceTheme
m_EditorClassIdentifier:
m_Comments:
m_ReadOnly: 1
m_Value:
m_StateAnimationCurve:
m_UseConstant: 1
m_ConstantValue:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_Variable: {fileID: 0}
m_List:
- stateName: disabled
animationStateStartValue: {r: 0, g: 0, b: 0, a: 0}
animationStateEndValue: {r: 0, g: 0, b: 0, a: 0}
- stateName: idle
animationStateStartValue: {r: 1, g: 1, b: 1, a: 0.050980393}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 0.050980393}
- stateName: hovered
animationStateStartValue: {r: 1, g: 1, b: 1, a: 1}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 1}
- stateName: hoveredPriority
animationStateStartValue: {r: 1, g: 1, b: 1, a: 1}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 1}
- stateName: selected
animationStateStartValue: {r: 1, g: 1, b: 1, a: 1}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 1}
- stateName: activated
animationStateStartValue: {r: 1, g: 1, b: 1, a: 1}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 1}
- stateName: focused
animationStateStartValue: {r: 1, g: 1, b: 1, a: 1}
animationStateEndValue: {r: 1, g: 1, b: 1, a: 1}
m_ColorBlendMode: 0
m_BlendAmount: 1

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0874a22edbf877c4183cb5ccde285f5a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: f81fcd9edaa84754869e9e9acb3aece4
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

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

View file

@ -0,0 +1,167 @@
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard;
namespace UnityEditor.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
[CustomPropertyDrawer(typeof(XRKeyboardConfig.KeyMapping))]
public class KeyMappingPropertyDrawer : PropertyDrawer
{
class SerializedPropertyFields
{
public SerializedProperty character;
public SerializedProperty shiftCharacter;
public SerializedProperty displayCharacter;
public SerializedProperty shiftDisplayCharacter;
public SerializedProperty displayIcon;
public SerializedProperty shiftDisplayIcon;
public SerializedProperty overrideDefaultKeyFunction;
public SerializedProperty keyFunction;
public SerializedProperty keyCode;
public SerializedProperty disabled;
public void FindProperties(SerializedProperty property)
{
character = property.FindPropertyRelative("m_Character");
shiftCharacter = property.FindPropertyRelative("m_ShiftCharacter");
displayCharacter = property.FindPropertyRelative("m_DisplayCharacter");
shiftDisplayCharacter = property.FindPropertyRelative("m_ShiftDisplayCharacter");
displayIcon = property.FindPropertyRelative("m_DisplayIcon");
shiftDisplayIcon = property.FindPropertyRelative("m_ShiftDisplayIcon");
overrideDefaultKeyFunction = property.FindPropertyRelative("m_OverrideDefaultKeyFunction");
keyFunction = property.FindPropertyRelative("m_KeyFunction");
keyCode = property.FindPropertyRelative("m_KeyCode");
disabled = property.FindPropertyRelative("m_Disabled");
}
}
/// <summary>
/// Contents of GUI elements used by this editor.
/// </summary>
protected static class Contents
{
public static readonly GUIContent character = EditorGUIUtility.TrTextContent("Character", "Character for this key in non-shifted state. This string will be passed to the keyboard and appended to the keyboard text string or processed as a keyboard command.");
public static readonly GUIContent shiftCharacter = EditorGUIUtility.TrTextContent("Shift Character", "Character for this key in a shifted state. This string will be passed to the keyboard and appended to the keyboard text string or processed as a keyboard command.");
public static readonly GUIContent displayCharacter = EditorGUIUtility.TrTextContent("Display Character", "Display character for this key in a non-shifted state. This string will be displayed on the key text field. If empty, character will be used as a fallback.");
public static readonly GUIContent shiftDisplayCharacter = EditorGUIUtility.TrTextContent("Shift Display Character", "Display character for this key in a shifted state. This string will be displayed on the key text field. If empty, shift character will be used as a fallback.");
public static readonly GUIContent displayIcon = EditorGUIUtility.TrTextContent("Display Icon", "Display icon for this key in a non-shifted state. This icon will be displayed on the key image field. If empty, the display character or character will be used as a fallback.");
public static readonly GUIContent shiftDisplayIcon = EditorGUIUtility.TrTextContent("Shift Display Icon", "Display icon for this key in a shifted state. This icon will be displayed on the key image field. If empty, the shift display character or shift character will be used as a fallback.");
public static readonly GUIContent overrideDefaultKeyFunction = EditorGUIUtility.TrTextContent("Override Default Key Function", "If true, this will expose a key function property to override the default key function of this config.");
public static readonly GUIContent keyFunction = EditorGUIUtility.TrTextContent("Key Function", "KeyFunction used for this key. The function callback will be called on key press and used to communicate with the keyboard API.");
public static readonly GUIContent keyCode = EditorGUIUtility.TrTextContent("Key Code", "(Optional) KeyCode used for this key. Used with Key Function to support already defined KeyCode values.");
public static readonly GUIContent disabled = EditorGUIUtility.TrTextContent("Disabled", "If true, the key button interactable property will be set to false.");
}
readonly SerializedPropertyFields m_Fields = new SerializedPropertyFields();
/// <summary>
/// See <see cref="PropertyDrawer"/>.
/// </summary>
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
if (property.isExpanded)
{
// 1 Foldout header + 3 boldLabel headers + 10 or 9 PropertyField
m_Fields.FindProperties(property);
var numLines = m_Fields.overrideDefaultKeyFunction.boolValue ? 14 : 13;
return EditorGUIUtility.singleLineHeight * numLines + EditorGUIUtility.standardVerticalSpacing * (numLines - 1);
}
return EditorGUIUtility.singleLineHeight;
}
/// <summary>
/// See <see cref="PropertyDrawer"/>.
/// </summary>
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
// Don't make child fields be indented
var indent = EditorGUI.indentLevel;
EditorGUI.indentLevel = 0;
var propertyRect = position;
propertyRect.height = EditorGUIUtility.singleLineHeight;
m_Fields.FindProperties(property);
property.isExpanded = EditorGUI.Foldout(propertyRect, property.isExpanded, GetPreviewString(m_Fields), true);
// Draw expanded properties
if (property.isExpanded)
{
var yDelta = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
propertyRect.y += yDelta;
// Character settings
EditorGUI.LabelField(propertyRect, "Character Settings", EditorStyles.boldLabel);
propertyRect.y += yDelta;
using (new EditorGUI.IndentLevelScope())
{
EditorGUI.PropertyField(propertyRect, m_Fields.character, Contents.character);
propertyRect.y += yDelta;
EditorGUI.PropertyField(propertyRect, m_Fields.shiftCharacter, Contents.shiftCharacter);
propertyRect.y += yDelta;
}
// Display settings
EditorGUI.LabelField(propertyRect, "Display Settings", EditorStyles.boldLabel);
propertyRect.y += yDelta;
using (new EditorGUI.IndentLevelScope())
{
EditorGUI.PropertyField(propertyRect, m_Fields.displayCharacter, Contents.displayCharacter);
propertyRect.y += yDelta;
EditorGUI.PropertyField(propertyRect, m_Fields.shiftDisplayCharacter, Contents.shiftDisplayCharacter);
propertyRect.y += yDelta;
EditorGUI.PropertyField(propertyRect, m_Fields.displayIcon, Contents.displayIcon);
propertyRect.y += yDelta;
EditorGUI.PropertyField(propertyRect, m_Fields.shiftDisplayIcon, Contents.shiftDisplayIcon);
propertyRect.y += yDelta;
}
// Function settings
EditorGUI.LabelField(propertyRect, "Function Settings", EditorStyles.boldLabel);
propertyRect.y += yDelta;
using (new EditorGUI.IndentLevelScope())
{
EditorGUI.PropertyField(propertyRect, m_Fields.overrideDefaultKeyFunction, Contents.overrideDefaultKeyFunction);
propertyRect.y += yDelta;
if (m_Fields.overrideDefaultKeyFunction.boolValue)
{
using (new EditorGUI.IndentLevelScope())
{
EditorGUI.PropertyField(propertyRect, m_Fields.keyFunction, Contents.keyFunction);
propertyRect.y += yDelta;
}
}
EditorGUI.PropertyField(propertyRect, m_Fields.keyCode, Contents.keyCode);
propertyRect.y += yDelta;
EditorGUI.PropertyField(propertyRect, m_Fields.disabled, Contents.disabled);
propertyRect.y += yDelta;
}
}
// Set indent back to what it was
EditorGUI.indentLevel = indent;
EditorGUI.EndProperty();
}
static string GetPreviewString(SerializedPropertyFields fields)
{
if (fields.overrideDefaultKeyFunction.boolValue)
{
var keyFunctionName = fields.keyFunction.objectReferenceValue != null
? fields.keyFunction.objectReferenceValue.name
: "None";
return $"{fields.character.stringValue} [{keyFunctionName}]";
}
return fields.character.stringValue;
}
}
}

View file

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

View file

@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Unity.XR.CoreUtils.Editor;
using UnityEditor.PackageManager.UI;
using UnityEngine;
namespace UnityEditor.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Unity Editor class which registers Project Validation rules for the Spatial Keyboard sample,
/// checking that other required samples are installed.
/// </summary>
static class SpatialKeyboardSampleProjectValidation
{
const string k_SampleDisplayName = "Spatial Keyboard";
const string k_Category = "XR Interaction Toolkit";
const string k_StarterAssetsSampleName = "Starter Assets";
const string k_ProjectValidationSettingsPath = "Project/XR Plug-in Management/Project Validation";
const string k_XRIPackageName = "com.unity.xr.interaction.toolkit";
static readonly BuildTargetGroup[] s_BuildTargetGroups =
((BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup))).Distinct().ToArray();
static readonly List<BuildValidationRule> s_BuildValidationRules = new List<BuildValidationRule>
{
new BuildValidationRule
{
Message = $"[{k_SampleDisplayName}] {k_StarterAssetsSampleName} sample from XR Interaction Toolkit ({k_XRIPackageName}) package must be imported or updated to use this sample.",
Category = k_Category,
CheckPredicate = () => TryFindSample(k_XRIPackageName, string.Empty, k_StarterAssetsSampleName, out var sample) && sample.isImported,
FixIt = () =>
{
if (TryFindSample(k_XRIPackageName, string.Empty, k_StarterAssetsSampleName, out var sample))
{
sample.Import(Sample.ImportOptions.OverridePreviousImports);
}
},
FixItAutomatic = true,
Error = true,
},
};
[InitializeOnLoadMethod]
static void RegisterProjectValidationRules()
{
foreach (var buildTargetGroup in s_BuildTargetGroups)
{
BuildValidator.AddRules(buildTargetGroup, s_BuildValidationRules);
}
// Delay evaluating conditions for issues to give time for Package Manager and UPM cache to fully initialize.
EditorApplication.delayCall += ShowWindowIfIssuesExist;
}
static void ShowWindowIfIssuesExist()
{
foreach (var validation in s_BuildValidationRules)
{
if (validation.CheckPredicate == null || !validation.CheckPredicate.Invoke())
{
ShowWindow();
return;
}
}
}
internal static void ShowWindow()
{
// Delay opening the window since sometimes other settings in the player settings provider redirect to the
// project validation window causing serialized objects to be nullified.
EditorApplication.delayCall += () =>
{
SettingsService.OpenProjectSettings(k_ProjectValidationSettingsPath);
};
}
static bool TryFindSample(string packageName, string packageVersion, string sampleDisplayName, out Sample sample)
{
sample = default;
if (!PackageVersionUtility.IsPackageInstalled(packageName))
return false;
IEnumerable<Sample> packageSamples;
try
{
packageSamples = Sample.FindByPackage(packageName, packageVersion);
}
catch (Exception e)
{
Debug.LogError($"Couldn't find samples of the {ToString(packageName, packageVersion)} package; aborting project validation rule. Exception: {e}");
return false;
}
if (packageSamples == null)
{
Debug.LogWarning($"Couldn't find samples of the {ToString(packageName, packageVersion)} package; aborting project validation rule.");
return false;
}
foreach (var packageSample in packageSamples)
{
if (packageSample.displayName == sampleDisplayName)
{
sample = packageSample;
return true;
}
}
Debug.LogWarning($"Couldn't find {sampleDisplayName} sample in the {ToString(packageName, packageVersion)} package; aborting project validation rule.");
return false;
}
static string ToString(string packageName, string packageVersion)
{
return string.IsNullOrEmpty(packageVersion) ? packageName : $"{packageName}@{packageVersion}";
}
}
}

View file

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

View file

@ -0,0 +1,34 @@
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard;
namespace UnityEditor.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Custom editor for an <see cref="XRKeyboardConfig"/>.
/// </summary>
[CustomEditor(typeof(XRKeyboardConfig), true), CanEditMultipleObjects]
public class XRKeyboardConfigEditor : BaseInteractionEditor
{
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardConfig.defaultKeyFunction"/>.</summary>
protected SerializedProperty m_DefaultKeyFunction;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardConfig.keyMappings"/>.</summary>
protected SerializedProperty m_KeyMappings;
/// <summary>
/// See <see cref="Editor"/>.
/// </summary>
protected virtual void OnEnable()
{
m_DefaultKeyFunction = serializedObject.FindProperty("m_DefaultKeyFunction");
m_KeyMappings = serializedObject.FindProperty("m_KeyMappings");
}
/// <inheritdoc />
protected override void DrawInspector()
{
DrawScript();
EditorGUILayout.PropertyField(m_DefaultKeyFunction);
EditorGUILayout.PropertyField(m_KeyMappings);
}
}
}

View file

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

View file

@ -0,0 +1,119 @@
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard;
namespace UnityEditor.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Custom editor for an <see cref="XRKeyboardDisplay"/>.
/// </summary>
[CustomEditor(typeof(XRKeyboardDisplay), true), CanEditMultipleObjects]
public class XRKeyboardDisplayEditor : BaseInteractionEditor
{
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.inputField"/>.</summary>
protected SerializedProperty m_InputField;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.keyboard"/>.</summary>
protected SerializedProperty m_Keyboard;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.useSceneKeyboard"/>.</summary>
protected SerializedProperty m_UseSceneKeyboard;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.updateOnKeyPress"/>.</summary>
protected SerializedProperty m_UpdateOnKeyPress;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.alwaysObserveKeyboard"/>.</summary>
protected SerializedProperty m_AlwaysObserveKeyboard;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.monitorInputFieldCharacterLimit"/>.</summary>
protected SerializedProperty m_MonitorInputFieldCharacterLimit;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.clearTextOnSubmit"/>.</summary>
protected SerializedProperty m_ClearTextOnSubmit;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.clearTextOnOpen"/>.</summary>
protected SerializedProperty m_ClearTextOnOpen;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.onKeyboardOpened"/>.</summary>
protected SerializedProperty m_OnKeyboardOpened;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.onKeyboardClosed"/>.</summary>
protected SerializedProperty m_OnKeyboardClosed;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.onKeyboardFocusChanged"/>.</summary>
protected SerializedProperty m_OnKeyboardFocusChanged;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardDisplay.onTextSubmitted"/>.</summary>
protected SerializedProperty m_OnTextSubmitted;
/// <summary>
/// Contents of GUI elements used by this editor.
/// </summary>
protected static class Contents
{
public static readonly GUIContent inputField = EditorGUIUtility.TrTextContent("Input Field", "Input field linked to this display");
public static readonly GUIContent keyboard = EditorGUIUtility.TrTextContent("Keyboard", "Keyboard for this display to monitor and interact with. If empty this will default to the GlobalNonNativeKeyboard keyboard.");
public static readonly GUIContent useSceneKeyboard = EditorGUIUtility.TrTextContent("Use Scene Keyboard", "If true, this display will use the keyboard reference. If false or if the keyboard field is empty, this display will use global keyboard.");
public static readonly GUIContent updateOnKeyPress = EditorGUIUtility.TrTextContent("Update on Key Press", "If true, this display will update with each key press. If false, this display will update on OnTextSubmit.");
public static readonly GUIContent alwaysObserveKeyboard = EditorGUIUtility.TrTextContent("Always Observe Keyboard", "If true, this display will always subscribe to the keyboard updates. If false, this display will subscribe to keyboard when the input field gains focus.");
public static readonly GUIContent monitorInputFieldCharacterLimit = EditorGUIUtility.TrTextContent("Monitor Input Field Character Limit", "If true, this display will use the input field's character limit to limit the update text from the keyboard and will pass this into the keyboard when opening.");
public static readonly GUIContent clearTextOnSubmit = EditorGUIUtility.TrTextContent("Clear Text on Submit", "If true, this display will clear the input field text on text submit from the keyboard.");
public static readonly GUIContent clearTextOnOpen = EditorGUIUtility.TrTextContent("Clear Text on Open", "If true, this display will clear the input field text when the keyboard opens.");
public static readonly GUIContent keyboardEvents = EditorGUIUtility.TrTextContent("Keyboard Display Events", "Events associated with the keyboard display");
public static readonly GUIContent onKeyboardOpened = EditorGUIUtility.TrTextContent("On Keyboard Opened", "The event that is called when this display opens a keyboard.");
public static readonly GUIContent onKeyboardClosed = EditorGUIUtility.TrTextContent("On Keyboard Closed", "The event that is called when the keyboard this display is observing is closed.");
public static readonly GUIContent onKeyboardFocusChanged = EditorGUIUtility.TrTextContent("On Keyboard Focus Changed", "The event that is called when the keyboard changes focus and this display is not focused.");
public static readonly GUIContent onTextSubmitted = EditorGUIUtility.TrTextContent("On Text Submitted", "The event that is called when this display receives a text submitted event from the keyboard. Invoked with the keyboard text as a parameter.");
}
/// <summary>
/// See <see cref="Editor"/>.
/// </summary>
protected virtual void OnEnable()
{
m_InputField = serializedObject.FindProperty("m_InputField");
m_Keyboard = serializedObject.FindProperty("m_Keyboard");
m_UseSceneKeyboard = serializedObject.FindProperty("m_UseSceneKeyboard");
m_UpdateOnKeyPress = serializedObject.FindProperty("m_UpdateOnKeyPress");
m_AlwaysObserveKeyboard = serializedObject.FindProperty("m_AlwaysObserveKeyboard");
m_MonitorInputFieldCharacterLimit = serializedObject.FindProperty("m_MonitorInputFieldCharacterLimit");
m_ClearTextOnSubmit = serializedObject.FindProperty("m_ClearTextOnSubmit");
m_ClearTextOnOpen = serializedObject.FindProperty("m_ClearTextOnOpen");
m_OnKeyboardOpened = serializedObject.FindProperty("m_OnKeyboardOpened");
m_OnKeyboardClosed = serializedObject.FindProperty("m_OnKeyboardClosed");
m_OnKeyboardFocusChanged = serializedObject.FindProperty("m_OnKeyboardFocusChanged");
m_OnTextSubmitted = serializedObject.FindProperty("m_OnTextSubmitted");
}
/// <inheritdoc />
protected override void DrawInspector()
{
DrawScript();
EditorGUILayout.PropertyField(m_InputField, Contents.inputField);
EditorGUILayout.PropertyField(m_UseSceneKeyboard, Contents.useSceneKeyboard);
using (new EditorGUI.IndentLevelScope())
{
using (new EditorGUI.DisabledScope(!m_UseSceneKeyboard.boolValue || Application.isPlaying))
{
EditorGUILayout.PropertyField(m_Keyboard, Contents.keyboard);
}
}
EditorGUILayout.PropertyField(m_UpdateOnKeyPress, Contents.updateOnKeyPress);
EditorGUILayout.PropertyField(m_AlwaysObserveKeyboard, Contents.alwaysObserveKeyboard);
EditorGUILayout.PropertyField(m_MonitorInputFieldCharacterLimit, Contents.monitorInputFieldCharacterLimit);
EditorGUILayout.PropertyField(m_ClearTextOnSubmit, Contents.clearTextOnSubmit);
EditorGUILayout.PropertyField(m_ClearTextOnOpen, Contents.clearTextOnOpen);
DrawKeyboardEvents();
}
void DrawKeyboardEvents()
{
m_OnTextSubmitted.isExpanded = EditorGUILayout.Foldout(m_OnTextSubmitted.isExpanded, Contents.keyboardEvents, toggleOnLabelClick: true);
if (m_OnTextSubmitted.isExpanded)
{
EditorGUILayout.PropertyField(m_OnTextSubmitted, Contents.onTextSubmitted);
EditorGUILayout.PropertyField(m_OnKeyboardOpened, Contents.onKeyboardOpened);
EditorGUILayout.PropertyField(m_OnKeyboardClosed, Contents.onKeyboardClosed);
EditorGUILayout.PropertyField(m_OnKeyboardFocusChanged, Contents.onKeyboardFocusChanged);
}
}
}
}

View file

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

View file

@ -0,0 +1,112 @@
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard;
namespace UnityEditor.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Custom editor for an <see cref="XRKeyboard"/>.
/// </summary>
[CustomEditor(typeof(XRKeyboard), true), CanEditMultipleObjects]
public class XRKeyboardEditor : BaseInteractionEditor
{
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.submitOnEnter"/>.</summary>
protected SerializedProperty m_SubmitOnEnter;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.closeOnSubmit"/>.</summary>
protected SerializedProperty m_CloseOnSubmit;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.doubleClickInterval"/>.</summary>
protected SerializedProperty m_DoubleClickInterval;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.subsetLayout"/>.</summary>
protected SerializedProperty m_SubsetLayout;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onTextSubmitted"/>.</summary>
protected SerializedProperty m_OnTextSubmit;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onTextUpdated"/>.</summary>
protected SerializedProperty m_OnTextUpdate;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onKeyPressed"/>.</summary>
protected SerializedProperty m_OnKeyPressed;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onShifted"/>.</summary>
protected SerializedProperty m_OnShift;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onLayoutChanged"/>.</summary>
protected SerializedProperty m_OnLayoutChange;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onOpened"/>.</summary>
protected SerializedProperty m_OnOpen;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onClosed"/>.</summary>
protected SerializedProperty m_OnClose;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onFocusChanged"/>.</summary>
protected SerializedProperty m_OnFocusChanged;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboard.onCharacterLimitReached"/>.</summary>
protected SerializedProperty m_OnCharacterLimitReached;
/// <summary>
/// Contents of GUI elements used by this editor.
/// </summary>
protected static class Contents
{
public static readonly GUIContent submitOnEnter = EditorGUIUtility.TrTextContent("Submit On Enter", "If true, On Text Submit will be invoked when the keyboard receives a return or enter command. Otherwise it will treat return or enter as a newline.");
public static readonly GUIContent closeOnSubmit = EditorGUIUtility.TrTextContent("Close On Submit", "If true, keyboard will close on enter or return command.");
public static readonly GUIContent doubleClickInterval = EditorGUIUtility.TrTextContent("Double Click Interval", "Interval in which a key pressed twice would be considered a double click.");
public static readonly GUIContent subsetLayout = EditorGUIUtility.TrTextContent("Subset Layout", "List of layouts this keyboard is able to switch between given the corresponding layout command.");
public static readonly GUIContent keyboardEvents = EditorGUIUtility.TrTextContent("Keyboard Events", "Events associated with the keyboard.");
public static readonly GUIContent onTextSubmit = EditorGUIUtility.TrTextContent("On Text Submitted", "Event invoked when keyboard submits text.");
public static readonly GUIContent onTextUpdate = EditorGUIUtility.TrTextContent("On Text Updated", "Event invoked when keyboard text is updated.");
public static readonly GUIContent onKeyPressed = EditorGUIUtility.TrTextContent("On Key Pressed", "Event invoked after a key is pressed.");
public static readonly GUIContent onShift = EditorGUIUtility.TrTextContent("On Shifted", "Event invoked after keyboard shift is changed.");
public static readonly GUIContent onLayoutChange = EditorGUIUtility.TrTextContent("On Layout Changed", "Event invoked when the keyboard is opened. Called with the keyboard and the new layout string key.");
public static readonly GUIContent onOpen = EditorGUIUtility.TrTextContent("On Opened", "Event invoked when the keyboard is opened.");
public static readonly GUIContent onClose = EditorGUIUtility.TrTextContent("On Closed", "Event invoked after the keyboard is closed.");
public static readonly GUIContent onFocusChanged = EditorGUIUtility.TrTextContent("On Focus Changed", "Event invoked when the keyboard changes or gains input field focus.");
public static readonly GUIContent onCharacterLimitReached = EditorGUIUtility.TrTextContent("On Character Limit Reached", "Event invoked when the keyboard tries to update text, but the character of the input field is reached.");
}
/// <summary>
/// See <see cref="Editor"/>.
/// </summary>
protected virtual void OnEnable()
{
m_SubmitOnEnter = serializedObject.FindProperty("m_SubmitOnEnter");
m_CloseOnSubmit = serializedObject.FindProperty("m_CloseOnSubmit");
m_DoubleClickInterval = serializedObject.FindProperty("m_DoubleClickInterval");
m_SubsetLayout = serializedObject.FindProperty("m_SubsetLayout");
m_OnTextSubmit = serializedObject.FindProperty("m_OnTextSubmitted");
m_OnTextUpdate = serializedObject.FindProperty("m_OnTextUpdated");
m_OnKeyPressed = serializedObject.FindProperty("m_OnKeyPressed");
m_OnShift = serializedObject.FindProperty("m_OnShifted");
m_OnLayoutChange = serializedObject.FindProperty("m_OnLayoutChanged");
m_OnOpen = serializedObject.FindProperty("m_OnOpened");
m_OnClose = serializedObject.FindProperty("m_OnClosed");
m_OnFocusChanged = serializedObject.FindProperty("m_OnFocusChanged");
m_OnCharacterLimitReached = serializedObject.FindProperty("m_OnCharacterLimitReached");
}
/// <inheritdoc />
protected override void DrawInspector()
{
DrawScript();
EditorGUILayout.PropertyField(m_SubmitOnEnter, Contents.submitOnEnter);
EditorGUILayout.PropertyField(m_CloseOnSubmit, Contents.closeOnSubmit);
EditorGUILayout.PropertyField(m_DoubleClickInterval, Contents.doubleClickInterval);
EditorGUILayout.PropertyField(m_SubsetLayout, Contents.subsetLayout);
DrawKeyboardEvents();
}
void DrawKeyboardEvents()
{
m_OnOpen.isExpanded = EditorGUILayout.Foldout(m_OnOpen.isExpanded, Contents.keyboardEvents, toggleOnLabelClick: true);
if (m_OnOpen.isExpanded)
{
EditorGUILayout.PropertyField(m_OnOpen, Contents.onOpen);
EditorGUILayout.PropertyField(m_OnClose, Contents.onClose);
EditorGUILayout.PropertyField(m_OnFocusChanged, Contents.onFocusChanged);
EditorGUILayout.PropertyField(m_OnTextSubmit, Contents.onTextSubmit);
EditorGUILayout.PropertyField(m_OnTextUpdate, Contents.onTextUpdate);
EditorGUILayout.PropertyField(m_OnKeyPressed, Contents.onKeyPressed);
EditorGUILayout.PropertyField(m_OnShift, Contents.onShift);
EditorGUILayout.PropertyField(m_OnLayoutChange, Contents.onLayoutChange);
EditorGUILayout.PropertyField(m_OnCharacterLimitReached, Contents.onCharacterLimitReached);
}
}
}
}

View file

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

View file

@ -0,0 +1,150 @@
using UnityEditor.UI;
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard;
namespace UnityEditor.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Custom editor for an <see cref="XRKeyboardKey"/>.
/// </summary>
[CustomEditor(typeof(XRKeyboardKey), true), CanEditMultipleObjects]
public class XRKeyboardKeyEditor : ButtonEditor
{
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.keyFunction"/>.</summary>
protected SerializedProperty m_KeyFunction;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.keyCode"/>.</summary>
protected SerializedProperty m_KeyCode;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.character"/>.</summary>
protected SerializedProperty m_Character;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.displayCharacter"/>.</summary>
protected SerializedProperty m_DisplayCharacter;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.displayIcon"/>.</summary>
protected SerializedProperty m_DisplayIcon;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.shiftCharacter"/>.</summary>
protected SerializedProperty m_ShiftCharacter;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.shiftDisplayCharacter"/>.</summary>
protected SerializedProperty m_ShiftDisplayCharacter;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.shiftDisplayIcon"/>.</summary>
protected SerializedProperty m_ShiftDisplayIcon;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.updateOnKeyDown"/>.</summary>
protected SerializedProperty m_UpdateOnKeyDown;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.textComponent"/>.</summary>
protected SerializedProperty m_TextComponent;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.audioSource"/>.</summary>
protected SerializedProperty m_AudioSource;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.highlightComponent"/>.</summary>
protected SerializedProperty m_HighlightComponent;
/// <summary><see cref="SerializedProperty"/> of the <see cref="SerializeField"/> backing <see cref="XRKeyboardKey.iconComponent"/>.</summary>
protected SerializedProperty m_IconComponent;
/// <summary>
/// Contents of GUI elements used by this editor.
/// </summary>
protected static class Contents
{
public static readonly GUIContent keyFunction = EditorGUIUtility.TrTextContent("Key Function", "KeyFunction used for this key. The FunctionCallBack will be called on key press and used to communicate with the keyboard.");
public static readonly GUIContent keyCode = EditorGUIUtility.TrTextContent("Key Code", "(Optional) KeyCode used for this key. Used in conjunction with KeyCodeFunction or as a fallback for standard commands.");
public static readonly GUIContent character = EditorGUIUtility.TrTextContent("Character", "Character for this key in non-shifted state. This string will be passed to the keyboard and appended to the keyboard text string or processed as a keyboard command.");
public static readonly GUIContent displayCharacter = EditorGUIUtility.TrTextContent("Display Character", "Display character for this key in a non-shifted state. This string will be displayed on the key text field. If empty, character will be used as a fall back.");
public static readonly GUIContent displayIcon = EditorGUIUtility.TrTextContent("Display Icon", "Display icon for this key in a non-shifted state. This icon will be displayed on the key image field. If empty, the display character or character will be used as a fall back.");
public static readonly GUIContent shiftCharacter = EditorGUIUtility.TrTextContent("Shift Character", "Character for this key in a shifted state. This string will be passed to the keyboard and appended to the keyboard text string or processed as a keyboard command.");
public static readonly GUIContent shiftDisplayCharacter = EditorGUIUtility.TrTextContent("Shift Display Character", "Display character for this key in a shifted state. This string will be displayed on the key text field. If empty, shift character will be used as a fall back.");
public static readonly GUIContent shiftDisplayIcon = EditorGUIUtility.TrTextContent("Shift Display Icon", "Display icon for this key in a shifted state. This icon will be displayed on the key image field. If empty, the shift display character or shift character will be used as a fall back.");
public static readonly GUIContent updateOnDown = EditorGUIUtility.TrTextContent("Update on key down", "If true, the key pressed event will fire on button down. If false, the key pressed event will fire on OnClick.");
public static readonly GUIContent textComponent = EditorGUIUtility.TrTextContent("Text Component", "Text field used to display key character.");
public static readonly GUIContent audioSource = EditorGUIUtility.TrTextContent("Audio Source", "(Optional) Audio source played when key is pressed.");
public static readonly GUIContent highlightComponent = EditorGUIUtility.TrTextContent("Highlight Component", "(Optional) Image used to highlight key indicating and active state.");
public static readonly GUIContent iconComponent = EditorGUIUtility.TrTextContent("Icon Component", "(Optional) Image used for key icon, used as an alternative to a character.");
public static readonly GUIContent buttonSettings = EditorGUIUtility.TrTextContent("Button Settings", "Settings for the keyboard key button.");
}
/// <inheritdoc />
protected override void OnEnable()
{
base.OnEnable();
m_KeyFunction = serializedObject.FindProperty("m_KeyFunction");
m_KeyCode = serializedObject.FindProperty("m_KeyCode");
m_Character = serializedObject.FindProperty("m_Character");
m_DisplayCharacter = serializedObject.FindProperty("m_DisplayCharacter");
m_DisplayIcon = serializedObject.FindProperty("m_DisplayIcon");
m_ShiftCharacter = serializedObject.FindProperty("m_ShiftCharacter");
m_ShiftDisplayCharacter = serializedObject.FindProperty("m_ShiftDisplayCharacter");
m_ShiftDisplayIcon = serializedObject.FindProperty("m_ShiftDisplayIcon");
m_UpdateOnKeyDown = serializedObject.FindProperty("m_UpdateOnKeyDown");
m_TextComponent = serializedObject.FindProperty("m_TextComponent");
m_AudioSource = serializedObject.FindProperty("m_AudioSource");
m_HighlightComponent = serializedObject.FindProperty("m_HighlightComponent");
m_IconComponent = serializedObject.FindProperty("m_IconComponent");
}
/// <inheritdoc />
public override void OnInspectorGUI()
{
serializedObject.Update();
DrawCharacterSettings();
DrawDisplaySettings();
DrawFunctionSettings();
DrawComponentReferences();
// Draw basic key settings
EditorGUILayout.PropertyField(m_UpdateOnKeyDown, Contents.updateOnDown);
// Draw button settings if that section is expanded
m_UpdateOnKeyDown.isExpanded = EditorGUILayout.Foldout(m_UpdateOnKeyDown.isExpanded, Contents.buttonSettings, toggleOnLabelClick: true);
if (m_UpdateOnKeyDown.isExpanded)
{
using (new EditorGUI.IndentLevelScope())
{
base.OnInspectorGUI();
}
}
serializedObject.ApplyModifiedProperties();
}
void DrawCharacterSettings()
{
EditorGUILayout.LabelField("Character Settings", EditorStyles.boldLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_Character, Contents.character);
EditorGUILayout.PropertyField(m_ShiftCharacter, Contents.shiftCharacter);
}
}
void DrawDisplaySettings()
{
EditorGUILayout.LabelField("Display Settings", EditorStyles.boldLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_DisplayCharacter, Contents.displayCharacter);
EditorGUILayout.PropertyField(m_ShiftDisplayCharacter, Contents.shiftDisplayCharacter);
EditorGUILayout.PropertyField(m_DisplayIcon, Contents.displayIcon);
EditorGUILayout.PropertyField(m_ShiftDisplayIcon, Contents.shiftDisplayIcon);
}
}
void DrawFunctionSettings()
{
EditorGUILayout.LabelField("Function Settings", EditorStyles.boldLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_KeyFunction, Contents.keyFunction);
EditorGUILayout.PropertyField(m_KeyCode, Contents.keyCode);
}
}
void DrawComponentReferences()
{
EditorGUILayout.LabelField("Component References", EditorStyles.boldLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_TextComponent, Contents.textComponent);
EditorGUILayout.PropertyField(m_IconComponent, Contents.iconComponent);
EditorGUILayout.PropertyField(m_HighlightComponent, Contents.highlightComponent);
EditorGUILayout.PropertyField(m_AudioSource, Contents.audioSource);
}
}
}
}

View file

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

View file

@ -0,0 +1,22 @@
{
"name": "Unity.XR.Interaction.Toolkit.Samples.SpatialKeyboard.Editor",
"rootNamespace": "",
"references": [
"Unity.XR.Interaction.Toolkit",
"Unity.XR.Interaction.Toolkit.Editor",
"Unity.XR.Interaction.Toolkit.Samples.SpatialKeyboard",
"Unity.XR.CoreUtils",
"Unity.XR.CoreUtils.Editor"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View file

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

View file

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

View file

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: 58528143acafcd44e93258c8e6a59dc5, type: 3}
m_Name: Hide Function
m_EditorClassIdentifier:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fafb46c355cbf0c4ab314558d216a90f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: 92861f72e977a244cb0be6d8410a8d99, type: 3}
m_Name: Key Code Function
m_EditorClassIdentifier:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2ff02eb02547eaf41855aabb5c603f8b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: 0f25471b9f361d64ba3aebe064d73092, type: 3}
m_Name: Layout Function
m_EditorClassIdentifier:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: abe6f1e7debe4b842a92014211d944fb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: cad704687d7908f42b71e1e4516c590a, type: 3}
m_Name: Shift Key Function
m_EditorClassIdentifier:
m_CapsLockDisplayIcon: {fileID: 21300000, guid: e9767100377274c4891dcd86110e54c5, type: 3}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fd75c3033834cc447bf5886f0424c0b9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: 4857d519405a3874cb91aea6424e314d, type: 3}
m_Name: Value Key Function
m_EditorClassIdentifier:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5e3d82ae0a9ac0d43ada00a218daeefd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

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

View file

@ -0,0 +1,436 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: 944d8cf1c59c0e8468bcd7e2fd86fe4d, type: 3}
m_Name: LayoutAlphaNumeric
m_EditorClassIdentifier:
m_DefaultKeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyMappings:
- m_Character: 1
m_DisplayCharacter: 1
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 1
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 2
m_DisplayCharacter: 2
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 2
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 3
m_DisplayCharacter: 3
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 3
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 4
m_DisplayCharacter: 4
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 4
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 5
m_DisplayCharacter: 5
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 5
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 6
m_DisplayCharacter: 6
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 6
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 7
m_DisplayCharacter: 7
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 7
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 8
m_DisplayCharacter: 8
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 8
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 9
m_DisplayCharacter: 9
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 9
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: 0
m_DisplayCharacter: 0
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: 0
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: q
m_DisplayCharacter: q
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: Q
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: w
m_DisplayCharacter: w
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: W
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: e
m_DisplayCharacter: e
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: E
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: r
m_DisplayCharacter: r
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: R
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: t
m_DisplayCharacter: t
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: T
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: y
m_DisplayCharacter: y
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: Y
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: u
m_DisplayCharacter: u
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: U
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: i
m_DisplayCharacter: i
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: I
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: o
m_DisplayCharacter: o
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: O
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: p
m_DisplayCharacter: p
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: P
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: a
m_DisplayCharacter: a
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: A
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: s
m_DisplayCharacter: s
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: S
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: d
m_DisplayCharacter: d
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: D
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: f
m_DisplayCharacter: f
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: F
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: g
m_DisplayCharacter: g
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: G
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: h
m_DisplayCharacter: h
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: H
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: j
m_DisplayCharacter: j
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: J
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: k
m_DisplayCharacter: k
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: K
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: l
m_DisplayCharacter: l
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: L
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \s
m_DisplayCharacter: shift
m_DisplayIcon: {fileID: 21300000, guid: acf80862a3f4c634394d450c760a8785, type: 3}
m_ShiftCharacter: \s
m_ShiftDisplayCharacter: shift
m_ShiftDisplayIcon: {fileID: 21300000, guid: acf80862a3f4c634394d450c760a8785, type: 3}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: fd75c3033834cc447bf5886f0424c0b9, type: 2}
m_KeyCode: 304
m_Disabled: 0
- m_Character: z
m_DisplayCharacter: z
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: Z
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: x
m_DisplayCharacter: x
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: X
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: c
m_DisplayCharacter: c
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: C
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: v
m_DisplayCharacter: v
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: V
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: b
m_DisplayCharacter: b
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: B
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: n
m_DisplayCharacter: n
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: N
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: m
m_DisplayCharacter: m
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: M
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \h
m_DisplayCharacter: Hide
m_DisplayIcon: {fileID: 21300000, guid: c79d61212a86f46498cf3acc9f5a3df9, type: 3}
m_ShiftCharacter: \h
m_ShiftDisplayCharacter: Hide
m_ShiftDisplayIcon: {fileID: 21300000, guid: c79d61212a86f46498cf3acc9f5a3df9, type: 3}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: fafb46c355cbf0c4ab314558d216a90f, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \e
m_DisplayCharacter:
m_DisplayIcon: {fileID: 21300000, guid: 1ba3355ce4a17124f9f3b0da441ac021, type: 3}
m_ShiftCharacter: \e
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 21300000, guid: 1ba3355ce4a17124f9f3b0da441ac021, type: 3}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: abe6f1e7debe4b842a92014211d944fb, type: 2}
m_KeyCode: 0
m_Disabled: 1
- m_Character: \sym
m_DisplayCharacter: '#+='
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: \sym
m_ShiftDisplayCharacter: '#+='
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: abe6f1e7debe4b842a92014211d944fb, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ' '
m_DisplayCharacter: Space
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: ' '
m_ShiftDisplayCharacter: Space
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyCode: 32
m_Disabled: 0
- m_Character: \r
m_DisplayCharacter: Enter
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: \r
m_ShiftDisplayCharacter: Enter
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: 2ff02eb02547eaf41855aabb5c603f8b, type: 2}
m_KeyCode: 13
m_Disabled: 0

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2580319e56ac659458811dcad1c26d69
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,436 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: 944d8cf1c59c0e8468bcd7e2fd86fe4d, type: 3}
m_Name: LayoutSymbols
m_EditorClassIdentifier:
m_DefaultKeyFunction: {fileID: 11400000, guid: 5e3d82ae0a9ac0d43ada00a218daeefd, type: 2}
m_KeyMappings:
- m_Character: '-'
m_DisplayCharacter: '-'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: /
m_DisplayCharacter: /
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ':'
m_DisplayCharacter: ':'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ;
m_DisplayCharacter: ;
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: (
m_DisplayCharacter: (
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: )
m_DisplayCharacter: )
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: $
m_DisplayCharacter: $
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '&'
m_DisplayCharacter: '&'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '@'
m_DisplayCharacter: '@'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '"'
m_DisplayCharacter: '"'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '['
m_DisplayCharacter: '['
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ']'
m_DisplayCharacter: ']'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '{'
m_DisplayCharacter: '{'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '}'
m_DisplayCharacter: '}'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '#'
m_DisplayCharacter: '#'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '%'
m_DisplayCharacter: '%'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ^
m_DisplayCharacter: ^
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '*'
m_DisplayCharacter: '*'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: +
m_DisplayCharacter: +
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: =
m_DisplayCharacter: =
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: _
m_DisplayCharacter: _
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \
m_DisplayCharacter: \
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '|'
m_DisplayCharacter: '|'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ~
m_DisplayCharacter: ~
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: <
m_DisplayCharacter: <
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '>'
m_DisplayCharacter: '>'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: "\u20AC"
m_DisplayCharacter: "\u20AC"
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: "\xA3"
m_DisplayCharacter: "\xA3"
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: "\xA5"
m_DisplayCharacter: "\xA5"
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \s
m_DisplayCharacter: shift
m_DisplayIcon: {fileID: 21300000, guid: acf80862a3f4c634394d450c760a8785, type: 3}
m_ShiftCharacter: \s
m_ShiftDisplayCharacter: shift
m_ShiftDisplayIcon: {fileID: 21300000, guid: acf80862a3f4c634394d450c760a8785, type: 3}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: fd75c3033834cc447bf5886f0424c0b9, type: 2}
m_KeyCode: 304
m_Disabled: 1
- m_Character: .
m_DisplayCharacter: .
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ','
m_DisplayCharacter: ','
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '?'
m_DisplayCharacter: '?'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '!'
m_DisplayCharacter: '!'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ''''
m_DisplayCharacter: ''''
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: "\u2022"
m_DisplayCharacter: "\u2022"
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: '`'
m_DisplayCharacter: '`'
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \h
m_DisplayCharacter: Hide
m_DisplayIcon: {fileID: 21300000, guid: c79d61212a86f46498cf3acc9f5a3df9, type: 3}
m_ShiftCharacter: \h
m_ShiftDisplayCharacter: Hide
m_ShiftDisplayIcon: {fileID: 21300000, guid: c79d61212a86f46498cf3acc9f5a3df9, type: 3}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: fafb46c355cbf0c4ab314558d216a90f, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: \e
m_DisplayCharacter:
m_DisplayIcon: {fileID: 21300000, guid: 1ba3355ce4a17124f9f3b0da441ac021, type: 3}
m_ShiftCharacter: \e
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 21300000, guid: 1ba3355ce4a17124f9f3b0da441ac021, type: 3}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: abe6f1e7debe4b842a92014211d944fb, type: 2}
m_KeyCode: 0
m_Disabled: 1
- m_Character: \sym
m_DisplayCharacter: ABC
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: \sym
m_ShiftDisplayCharacter: ABC
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: abe6f1e7debe4b842a92014211d944fb, type: 2}
m_KeyCode: 0
m_Disabled: 0
- m_Character: ' '
m_DisplayCharacter: Space
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: ' '
m_ShiftDisplayCharacter: Space
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 0
m_KeyFunction: {fileID: 0}
m_KeyCode: 32
m_Disabled: 0
- m_Character: \r
m_DisplayCharacter: Enter
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter: \r
m_ShiftDisplayCharacter: Enter
m_ShiftDisplayIcon: {fileID: 0}
m_OverrideDefaultKeyFunction: 1
m_KeyFunction: {fileID: 11400000, guid: 2ff02eb02547eaf41855aabb5c603f8b, type: 2}
m_KeyCode: 13
m_Disabled: 0

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 846fe994ca156db429b72643cdf7c042
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

@ -0,0 +1,80 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: GrabHandle
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e6214d327b0cf3f4fbb4085685e38d0a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: e7883133e628dff4a86f50c082f77055, type: 3}
m_Name: MaterialPipelineHandler
m_EditorClassIdentifier:
m_ShaderContainers: []
m_AutoRefreshShaders: 1

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: eb7e5e68631561a4a8ccf587221af3a3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,102 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ScaleHandle
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords:
- _ALPHABLEND_ON
- _GLOSSYREFLECTIONS_OFF
- _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- _SPECULARHIGHLIGHTS_OFF
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _Mode: 2
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 1
- _SpecularHighlights: 0
- _SrcBlend: 5
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _Strength: 0.2
- _UVSec: 0
- _UseUIAlphaClip: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 0.050980393}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 14907cbcede41d94f99fc623c76cce72
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

@ -0,0 +1,106 @@
fileFormatVersion: 2
guid: ae54ba12b7f49c840a53ce0b50b389b6
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,106 @@
fileFormatVersion: 2
guid: e1baba050113e0f44bd4f6b52e77696d
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 0
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 0
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,106 @@
fileFormatVersion: 2
guid: 1ba9bd0b05ec38445ab95fb48db916df
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 0
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
remapMaterialsIfMaterialImportModeIsNone: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

@ -0,0 +1,755 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5185231984917197337
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5185231984917197345}
- component: {fileID: 5185231984917197344}
- component: {fileID: 5185231984917197343}
- component: {fileID: 5185231984917197342}
- component: {fileID: 5185231984917197340}
- component: {fileID: 5185231984917197339}
- component: {fileID: 5185231984917197338}
- component: {fileID: 1715446783570025663}
- component: {fileID: 3293349416794078848}
m_Layer: 5
m_Name: Input Field Global Keyboard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5185231984917197345
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.003, y: 0.003, z: 0.003}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8437028974135710645}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &5185231984917197344
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &5185231984917197343
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
--- !u!114 &5185231984917197342
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!222 &5185231984917197340
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_CullTransparentMesh: 0
--- !u!114 &5185231984917197339
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.7490196}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 8
--- !u!114 &5185231984917197338
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 16
m_Right: 16
m_Top: 12
m_Bottom: 16
m_ChildAlignment: 4
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &1715446783570025663
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 1
--- !u!114 &3293349416794078848
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5185231984917197337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 0
m_CheckFor2DOcclusion: 0
m_CheckFor3DOcclusion: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RaycastTriggerInteraction: 1
--- !u!1 &8437028974135710644
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8437028974135710645}
- component: {fileID: 8437028974135710649}
- component: {fileID: 8437028974135710648}
- component: {fileID: 8437028974135710651}
- component: {fileID: 8437028974135710650}
m_Layer: 5
m_Name: InputField (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8437028974135710645
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974135710644}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8437028975400972187}
m_Father: {fileID: 5185231984917197345}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8437028974135710649
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974135710644}
m_CullTransparentMesh: 1
--- !u!114 &8437028974135710648
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974135710644}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8437028974135710651
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974135710644}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 8437028974135710648}
m_TextViewport: {fileID: 8437028975400972187}
m_TextComponent: {fileID: 8437028974540207066}
m_Placeholder: {fileID: 8437028974606165540}
m_VerticalScrollbar: {fileID: 0}
m_VerticalScrollbarEventHandler: {fileID: 0}
m_LayoutGroup: {fileID: 0}
m_ScrollSensitivity: 1
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 0
m_HideMobileInput: 0
m_HideSoftKeyboard: 1
m_CharacterValidation: 0
m_RegexValue:
m_GlobalPointSize: 14
m_CharacterLimit: 0
m_OnEndEdit:
m_PersistentCalls:
m_Calls: []
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnSelect:
m_PersistentCalls:
m_Calls: []
m_OnDeselect:
m_PersistentCalls:
m_Calls: []
m_OnTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnEndTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_OnTouchScreenKeyboardStatusChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text:
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_RichText: 1
m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
m_InputValidator: {fileID: 0}
--- !u!114 &8437028974135710650
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974135710644}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a2317ceab4d3d38419fe16eebc1c0cd3, type: 3}
m_Name:
m_EditorClassIdentifier:
m_InputField: {fileID: 8437028974135710651}
m_Keyboard: {fileID: 0}
m_UseSceneKeyboard: 0
m_UpdateOnKeyPress: 1
m_AlwaysObserveKeyboard: 0
m_MonitorInputFieldCharacterLimit: 0
m_ClearTextOnSubmit: 0
m_ClearTextOnOpen: 0
m_OnTextSubmitted:
m_PersistentCalls:
m_Calls: []
m_OnKeyboardOpened:
m_PersistentCalls:
m_Calls: []
m_OnKeyboardClosed:
m_PersistentCalls:
m_Calls: []
m_OnKeyboardFocusChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &8437028974540207060
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8437028974540207061}
- component: {fileID: 8437028974540207067}
- component: {fileID: 8437028974540207066}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8437028974540207061
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974540207060}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8437028975400972187}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8437028974540207067
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974540207060}
m_CullTransparentMesh: 1
--- !u!114 &8437028974540207066
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974540207060}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u200B"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8437028974606165537
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8437028974606165542}
- component: {fileID: 8437028974606165541}
- component: {fileID: 8437028974606165540}
- component: {fileID: 8437028974606165543}
m_Layer: 5
m_Name: Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8437028974606165542
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974606165537}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8437028975400972187}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8437028974606165541
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974606165537}
m_CullTransparentMesh: 1
--- !u!114 &8437028974606165540
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974606165537}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Enter text...
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 2150773298
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 2
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &8437028974606165543
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028974606165537}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &8437028975400972186
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8437028975400972187}
- component: {fileID: 8437028975400972184}
m_Layer: 5
m_Name: Text Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8437028975400972187
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028975400972186}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8437028974606165542}
- {fileID: 8437028974540207061}
m_Father: {fileID: 8437028974135710645}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8437028975400972184
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8437028975400972186}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0}

View file

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

View file

@ -0,0 +1,755 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2106131159180314403
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2106131159180314395}
- component: {fileID: 2106131159180314394}
- component: {fileID: 2106131159180314405}
- component: {fileID: 2106131159180314404}
- component: {fileID: 2106131159180314406}
- component: {fileID: 2106131159180314401}
- component: {fileID: 2106131159180314400}
- component: {fileID: 5548896429074786693}
- component: {fileID: 8609631233081117626}
m_Layer: 5
m_Name: Input Field World Keyboard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2106131159180314395
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.003, y: 0.003, z: 0.003}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3447935437714240047}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &2106131159180314394
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &2106131159180314405
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
--- !u!114 &2106131159180314404
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!222 &2106131159180314406
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_CullTransparentMesh: 0
--- !u!114 &2106131159180314401
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.7490196}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 8
--- !u!114 &2106131159180314400
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 16
m_Right: 16
m_Top: 12
m_Bottom: 16
m_ChildAlignment: 4
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &5548896429074786693
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 1
--- !u!114 &8609631233081117626
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2106131159180314403}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 0
m_CheckFor2DOcclusion: 0
m_CheckFor3DOcclusion: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RaycastTriggerInteraction: 1
--- !u!1 &3447935436786261979
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3447935436786261978}
- component: {fileID: 3447935436786261983}
- component: {fileID: 3447935436786261980}
- component: {fileID: 3447935436786261981}
m_Layer: 5
m_Name: Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3447935436786261978
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935436786261979}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3447935436979216421}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3447935436786261983
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935436786261979}
m_CullTransparentMesh: 1
--- !u!114 &3447935436786261980
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935436786261979}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Enter text...
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 2150773298
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 2
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &3447935436786261981
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935436786261979}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &3447935436979216418
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3447935436979216421}
- component: {fileID: 3447935436979216420}
m_Layer: 5
m_Name: Text Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3447935436979216421
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935436979216418}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3447935436786261978}
- {fileID: 3447935437304462856}
m_Father: {fileID: 3447935437714240047}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &3447935436979216420
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935436979216418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0}
--- !u!1 &3447935437304462857
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3447935437304462856}
- component: {fileID: 3447935437304462858}
- component: {fileID: 3447935437304462859}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3447935437304462856
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437304462857}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3447935436979216421}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3447935437304462858
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437304462857}
m_CullTransparentMesh: 1
--- !u!114 &3447935437304462859
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437304462857}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u200B"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3447935437714240044
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3447935437714240047}
- component: {fileID: 3447935437714240051}
- component: {fileID: 3447935437714240048}
- component: {fileID: 3447935437714240049}
- component: {fileID: 3447935437714240046}
m_Layer: 5
m_Name: InputField (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3447935437714240047
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437714240044}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3447935436979216421}
m_Father: {fileID: 2106131159180314395}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3447935437714240051
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437714240044}
m_CullTransparentMesh: 1
--- !u!114 &3447935437714240048
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437714240044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3447935437714240049
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437714240044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3447935437714240048}
m_TextViewport: {fileID: 3447935436979216421}
m_TextComponent: {fileID: 3447935437304462859}
m_Placeholder: {fileID: 3447935436786261980}
m_VerticalScrollbar: {fileID: 0}
m_VerticalScrollbarEventHandler: {fileID: 0}
m_LayoutGroup: {fileID: 0}
m_ScrollSensitivity: 1
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 0
m_HideMobileInput: 0
m_HideSoftKeyboard: 1
m_CharacterValidation: 0
m_RegexValue:
m_GlobalPointSize: 14
m_CharacterLimit: 8
m_OnEndEdit:
m_PersistentCalls:
m_Calls: []
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnSelect:
m_PersistentCalls:
m_Calls: []
m_OnDeselect:
m_PersistentCalls:
m_Calls: []
m_OnTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnEndTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_OnTouchScreenKeyboardStatusChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text:
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_RichText: 1
m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 0
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
m_InputValidator: {fileID: 0}
--- !u!114 &3447935437714240046
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3447935437714240044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a2317ceab4d3d38419fe16eebc1c0cd3, type: 3}
m_Name:
m_EditorClassIdentifier:
m_InputField: {fileID: 3447935437714240049}
m_Keyboard: {fileID: 0}
m_UseSceneKeyboard: 1
m_UpdateOnKeyPress: 1
m_AlwaysObserveKeyboard: 0
m_MonitorInputFieldCharacterLimit: 0
m_ClearTextOnSubmit: 0
m_ClearTextOnOpen: 0
m_OnTextSubmitted:
m_PersistentCalls:
m_Calls: []
m_OnKeyboardOpened:
m_PersistentCalls:
m_Calls: []
m_OnKeyboardClosed:
m_PersistentCalls:
m_Calls: []
m_OnKeyboardFocusChanged:
m_PersistentCalls:
m_Calls: []

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 978a908aeff4f144dadda280e00e34ee
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,132 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3702302986624515272
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3923090998476762128}
- component: {fileID: 3579071922695784126}
m_Layer: 0
m_Name: Scale Handle Collider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3923090998476762128
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3702302986624515272}
m_LocalRotation: {x: 0.000000044703487, y: 0.7071068, z: -0.7071068, w: 0.000000044703487}
m_LocalPosition: {x: -0.686, y: 0, z: 0.632}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 2196794532296188522}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 90, y: -30, z: -210}
--- !u!64 &3579071922695784126
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3702302986624515272}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 4
m_Convex: 1
m_CookingOptions: 30
m_Mesh: {fileID: 6788383922943872000, guid: e1baba050113e0f44bd4f6b52e77696d, type: 3}
--- !u!1 &6633183498948813012
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2196794532296188522}
- component: {fileID: 7807628761442964775}
- component: {fileID: 3361920201703168660}
m_Layer: 0
m_Name: Scale Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2196794532296188522
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6633183498948813012}
m_LocalRotation: {x: -0, y: -0.7071068, z: 0.7071068, w: 0}
m_LocalPosition: {x: 3.7499998, y: 0.75, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3923090998476762128}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 180}
--- !u!33 &7807628761442964775
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6633183498948813012}
m_Mesh: {fileID: 8128991250398310201, guid: ae54ba12b7f49c840a53ce0b50b389b6, type: 3}
--- !u!23 &3361920201703168660
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6633183498948813012}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 14907cbcede41d94f99fc623c76cce72, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}

View file

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

View file

@ -0,0 +1,53 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2314523925997562666
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2314523925997562660}
- component: {fileID: 2314523925997562667}
m_Layer: 0
m_Name: XRI Global Keyboard Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2314523925997562660
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2314523925997562666}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2314523925997562667
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2314523925997562666}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 015b50343a7cf174ebb7703245f6ba72, type: 3}
m_Name:
m_EditorClassIdentifier:
m_KeyboardPrefab: {fileID: 7339749990365776448, guid: 1aaf2dceef22d1147bfc70d706ddd188, type: 3}
m_PlayerRoot: {fileID: 0}
m_Keyboard: {fileID: 0}
m_KeyboardOffset: {x: 0, y: -0.35, z: 0.25}
m_CameraTransform: {fileID: 0}
m_RepositionOutOfViewKeyboardOnOpen: 1
m_FacingKeyboardThreshold: 0.15

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 763522a439f36ac4d881f5652181a2ee
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,633 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1253337762353444269
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2197442164563211728}
- component: {fileID: 2743443539172796335}
- component: {fileID: 5599558209658972096}
- component: {fileID: 5185769617649039493}
- component: {fileID: 3017688714510272995}
- component: {fileID: 8919338462331172391}
m_Layer: 5
m_Name: XRI Keyboard Key
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2197442164563211728
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253337762353444269}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5792483888663696090}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 64, y: 64}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2743443539172796335
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253337762353444269}
m_CullTransparentMesh: 0
--- !u!114 &5599558209658972096
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253337762353444269}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 84bf39f7245577d4491b0aa8ea6016ee, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1}
m_HighlightedColor: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 0.6313726}
m_PressedColor: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 1}
m_SelectedColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1}
m_DisabledColor: {r: 0.047058824, g: 0.047058824, b: 0.047058824, a: 1}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 5764233770622607508}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_KeyFunction: {fileID: 0}
m_KeyCode: 0
m_Character:
m_DisplayCharacter:
m_DisplayIcon: {fileID: 0}
m_ShiftCharacter:
m_ShiftDisplayCharacter:
m_ShiftDisplayIcon: {fileID: 0}
m_UpdateOnKeyDown: 1
m_TextComponent: {fileID: 1230688967838103642}
m_IconComponent: {fileID: 434614208518678406}
m_HighlightComponent: {fileID: 1500099412274214952}
m_AudioSource: {fileID: 8919338462331172391}
--- !u!114 &5185769617649039493
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253337762353444269}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 07b3638c2f5db5b479ff24c2859713d4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_PokeFollowTransform: {fileID: 5792483888663696090}
m_SmoothingSpeed: 16
m_ReturnToInitialPosition: 1
m_ApplyIfChildIsTarget: 1
m_ClampToMaxDistance: 1
m_MaxDistance: 10
--- !u!114 &3017688714510272995
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253337762353444269}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!82 &8919338462331172391
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1253337762353444269}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: f81fcd9edaa84754869e9e9acb3aece4, type: 3}
m_PlayOnAwake: 0
m_Volume: 1
m_Pitch: 1
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!1 &4620195480082662092
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7744964415469400118}
- component: {fileID: 9011756104155648123}
- component: {fileID: 1500099412274214952}
m_Layer: 5
m_Name: Highlight
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7744964415469400118
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4620195480082662092}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5792483888663696090}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 64, y: 64}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9011756104155648123
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4620195480082662092}
m_CullTransparentMesh: 1
--- !u!114 &1500099412274214952
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4620195480082662092}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b5ef5a94299045b4988c14406eb10d19, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 1
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6587516960349639740
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4749110839071018368}
- component: {fileID: 6235336889950583525}
- component: {fileID: 1230688967838103642}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4749110839071018368
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587516960349639740}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5792483888663696090}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6235336889950583525
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587516960349639740}
m_CullTransparentMesh: 1
--- !u!114 &1230688967838103642
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587516960349639740}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6788957415840782927
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5017493697046792933}
- component: {fileID: 5842188131676396847}
- component: {fileID: 434614208518678406}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5017493697046792933
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6788957415840782927}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5792483888663696090}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5842188131676396847
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6788957415840782927}
m_CullTransparentMesh: 1
--- !u!114 &434614208518678406
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6788957415840782927}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &9128965994530478997
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5792483888663696090}
- component: {fileID: 8949111014583776716}
- component: {fileID: 5764233770622607508}
- component: {fileID: 3718196666601218021}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5792483888663696090
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9128965994530478997}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4749110839071018368}
- {fileID: 5017493697046792933}
- {fileID: 7744964415469400118}
m_Father: {fileID: 2197442164563211728}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 64, y: 64}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8949111014583776716
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9128965994530478997}
m_CullTransparentMesh: 1
--- !u!114 &5764233770622607508
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9128965994530478997}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 30a9256eb7d98ad4188fe103a8e7143b, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3718196666601218021
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9128965994530478997}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8a27b1b39d17cdc4c8f3da30ea294c6f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4dfac36245beb8e4d884a833a5a0517f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

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

View file

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

View file

@ -0,0 +1,241 @@
using TMPro;
using UnityEngine.XR.Interaction.Toolkit.Utilities;
namespace UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Manages spawning and positioning of the global keyboard.
/// </summary>
public class GlobalNonNativeKeyboard : MonoBehaviour
{
public static GlobalNonNativeKeyboard instance { get; private set; }
[SerializeField, Tooltip("The prefab with the XR Keyboard component to automatically instantiate.")]
GameObject m_KeyboardPrefab;
/// <summary>
/// The prefab with the XR Keyboard component to automatically instantiate.
/// </summary>
public GameObject keyboardPrefab
{
get => m_KeyboardPrefab;
set => m_KeyboardPrefab = value;
}
[SerializeField, Tooltip("The parent Transform to instantiate the Keyboard Prefab under.")]
Transform m_PlayerRoot;
/// <summary>
/// The parent Transform to instantiate the Keyboard Prefab under.
/// </summary>
public Transform playerRoot
{
get => m_PlayerRoot;
set => m_PlayerRoot = value;
}
[HideInInspector]
[SerializeField]
XRKeyboard m_Keyboard;
/// <summary>
/// Global keyboard instance.
/// </summary>
public XRKeyboard keyboard
{
get => m_Keyboard;
set => m_Keyboard = value;
}
[SerializeField, Tooltip("Position offset from the camera to place the keyboard.")]
Vector3 m_KeyboardOffset;
/// <summary>
/// Position offset from the camera to place the keyboard.
/// </summary>
public Vector3 keyboardOffset
{
get => m_KeyboardOffset;
set => m_KeyboardOffset = value;
}
[SerializeField, Tooltip("Transform of the camera. If left empty, this will default to Camera.main.")]
Transform m_CameraTransform;
/// <summary>
/// Transform of the camera. If left empty, this will default to Camera.main.
/// </summary>
public Transform cameraTransform
{
get => m_CameraTransform;
set => m_CameraTransform = value;
}
[SerializeField, Tooltip("If true, the keyboard will be repositioned to the starting position if it is out of view when Show Keyboard is called.")]
bool m_RepositionOutOfViewKeyboardOnOpen = true;
/// <summary>
/// If true, the keyboard will be repositioned to the starting position if it is out of view when Show Keyboard is called.
/// </summary>
public bool repositionOutOfViewKeyboardOnOpen
{
get => m_RepositionOutOfViewKeyboardOnOpen;
set => m_RepositionOutOfViewKeyboardOnOpen = value;
}
[SerializeField, Tooltip("Threshold for the dot product when determining if the keyboard is out of view and should be repositioned. The lower the threshold, the wider the field of view."), Range(0f, 1f)]
float m_FacingKeyboardThreshold = 0.15f;
/// <summary>
/// Threshold for the dot product when determining if the keyboard is out of view and should be repositioned. The lower the threshold, the wider the field of view.
/// </summary>
public float facingKeyboardThreshold
{
get => m_FacingKeyboardThreshold;
set => m_FacingKeyboardThreshold = value;
}
/// <summary>
/// See <see cref="MonoBehaviour"/>.
/// </summary>
void Awake()
{
if (instance != null && instance != this)
{
Destroy(this);
return;
}
instance = this;
if (m_CameraTransform == null)
{
var mainCamera = Camera.main;
if (mainCamera != null)
m_CameraTransform = mainCamera.transform;
else
Debug.LogWarning("Could not find main camera to assign the missing Camera Transform property.", this);
}
if (m_KeyboardPrefab != null)
{
keyboard = Instantiate(m_KeyboardPrefab, m_PlayerRoot).GetComponent<XRKeyboard>();
keyboard.gameObject.SetActive(false);
}
}
/// <summary>
/// Opens the global keyboard with a <see cref="TMP_InputField"/> to monitor.
/// </summary>
/// <remarks>This will update the keyboard with <see cref="TMP_InputField.text"/> as the existing string for the keyboard.</remarks>
/// <param name="inputField">The input field for the global keyboard to monitor</param>
/// <param name="observeCharacterLimit">If true, the global keyboard will respect the character limit of the
/// <see cref="inputField"/>. This is false by default.</param>
public virtual void ShowKeyboard(TMP_InputField inputField, bool observeCharacterLimit = false)
{
if (keyboard == null)
return;
// Check if keyboard is already open or should be repositioned
var shouldPositionKeyboard = !keyboard.isOpen || (m_RepositionOutOfViewKeyboardOnOpen && IsKeyboardOutOfView());
// Open keyboard
keyboard.Open(inputField, observeCharacterLimit);
// Position keyboard in front of user if the keyboard is closed
if (shouldPositionKeyboard)
PositionKeyboard(m_CameraTransform);
}
/// <summary>
/// Opens the global keyboard with the option to populate it with existing text.
/// </summary>
/// <remarks>This will update the keyboard with <see cref="text"/> as the existing string for the keyboard.</remarks>
/// <param name="text">The existing text string to populate the keyboard with on open.</param>
public virtual void ShowKeyboard(string text)
{
if (keyboard == null)
return;
// Check if keyboard is already open or should be repositioned
var shouldPositionKeyboard = !keyboard.isOpen || (m_RepositionOutOfViewKeyboardOnOpen && IsKeyboardOutOfView());
// Open keyboard
keyboard.Open(text);
// Position keyboard in front of user if the keyboard is closed
if (shouldPositionKeyboard)
PositionKeyboard(m_CameraTransform);
}
/// <summary>
/// Opens the global keyboard with the option to clear any existing keyboard text.
/// </summary>
/// <param name="clearKeyboardText">If true, the keyboard will open with no string populated in the keyboard. If false,
/// the existing text will be maintained. This is false by default.</param>
public void ShowKeyboard(bool clearKeyboardText = false)
{
if (keyboard == null)
return;
ShowKeyboard(clearKeyboardText ? string.Empty : keyboard.text);
}
/// <summary>
/// Closes the global keyboard.
/// </summary>
public virtual void HideKeyboard()
{
if (keyboard == null)
return;
keyboard.Close();
}
/// <summary>
/// Reposition <see cref="keyboard"/> to starting position if it is out of view. Keyboard will only reposition if is active and enabled.
/// </summary>
/// <remarks>
/// Field if view is defined by the <see cref="facingKeyboardThreshold"/>, and the starting position
/// is defined by the <see cref="keyboardOffset"/> in relation to the camera.
/// </remarks>
public void RepositionKeyboardIfOutOfView()
{
if (IsKeyboardOutOfView())
{
if (keyboard.isOpen)
PositionKeyboard(m_CameraTransform);
}
}
void PositionKeyboard(Transform target)
{
var position = target.position +
target.right * m_KeyboardOffset.x +
target.forward * m_KeyboardOffset.z +
Vector3.up * m_KeyboardOffset.y;
keyboard.transform.position = position;
FaceKeyboardAtTarget(m_CameraTransform);
}
void FaceKeyboardAtTarget(Transform target)
{
var forward = (keyboard.transform.position - target.position).normalized;
BurstMathUtility.OrthogonalLookRotation(forward, Vector3.up, out var newTarget);
keyboard.transform.rotation = newTarget;
}
bool IsKeyboardOutOfView()
{
if (m_CameraTransform == null || keyboard == null)
{
Debug.LogWarning("Camera or keyboard reference is null. Unable to determine if keyboard is out of view.", this);
return false;
}
var dotProduct = Vector3.Dot(m_CameraTransform.forward, (keyboard.transform.position - m_CameraTransform.position).normalized);
return dotProduct < m_FacingKeyboardThreshold;
}
}
}

View file

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

View file

@ -0,0 +1,70 @@
namespace UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard
{
/// <summary>
/// Abstract class defining callbacks for key functionality. Allows users to extend
/// custom functionality of keys and keyboard.
/// </summary>
public abstract class KeyFunction : ScriptableObject
{
/// <summary>
/// Pre-process function when a key is pressed.
/// </summary>
/// <param name="keyboardContext">The current keyboard associated with <see cref="key"/>.</param>
/// <param name="key">The key that is being pressed.</param>
public virtual void PreprocessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext != null)
keyboardContext.PreprocessKeyPress(key);
}
/// <summary>
/// Primary function callback when a key is pressed. Use this function to interface directly with a keyboard
/// and process logic based on the current keyboard and key context.
/// </summary>
/// <param name="keyboardContext">The current keyboard associated with <see cref="key"/>.</param>
/// <param name="key">The key that is being pressed.</param>
public abstract void ProcessKey(XRKeyboard keyboardContext, XRKeyboardKey key);
/// <summary>
/// Post-process function when a key is pressed. This function calls <see cref="XRKeyboard.PostprocessKeyPress"/> on the keyboard.
/// </summary>
/// <param name="keyboardContext">The current keyboard associated with <see cref="key"/>.</param>
/// <param name="key">The key that is being pressed.</param>
public virtual void PostprocessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext != null)
keyboardContext.PostprocessKeyPress(key);
}
/// <summary>
/// Uses keyboard and key context to determine if this key function should override the key's display icon.
/// </summary>
/// <param name="keyboardContext">Current keyboard context.</param>
/// <param name="key">Current keyboard key.</param>
/// <returns>Returns true if this key function should override the display icon.</returns>
public virtual bool OverrideDisplayIcon(XRKeyboard keyboardContext, XRKeyboardKey key)
{
return false;
}
/// <summary>
/// Returns display icon for this key function based on the context of the key and keyboard.
/// </summary>
/// <param name="keyboardContext">Current keyboard context.</param>
/// <param name="key">Current keyboard key.</param>
/// <returns>Returns display icon for this key.</returns>
public virtual Sprite GetDisplayIcon(XRKeyboard keyboardContext, XRKeyboardKey key)
{
return null;
}
/// <summary>
/// Allows this key function to process when a key is refreshing its display.
/// </summary>
/// <param name="keyboardContext">The current keyboard associated with <see cref="key"/>.</param>
/// <param name="key">The key that is refreshing the display.</param>
public virtual void ProcessRefreshDisplay(XRKeyboard keyboardContext, XRKeyboardKey key)
{
}
}
}

View file

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

View file

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

View file

@ -0,0 +1,16 @@
namespace UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard.KeyFunctions
{
/// <summary>
/// Key function used to hide the keyboard.
/// </summary>
[CreateAssetMenu(fileName = "Hide Function", menuName = "XR/Spatial Keyboard/Hide Key Function", order = 1)]
public class HideFunction : KeyFunction
{
/// <inheritdoc />
public override void ProcessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext != null)
keyboardContext.Close(false);
}
}
}

View file

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

View file

@ -0,0 +1,16 @@
namespace UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard.KeyFunctions
{
/// <summary>
/// Key function used to send a key code for the keyboard to process.
/// </summary>
[CreateAssetMenu(fileName = "Key Code Function", menuName = "XR/Spatial Keyboard/Key Code Key Function", order = 1)]
public class KeyCodeFunction : KeyFunction
{
/// <inheritdoc />
public override void ProcessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext != null)
keyboardContext.ProcessKeyCode(key.keyCode);
}
}
}

View file

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

View file

@ -0,0 +1,16 @@
namespace UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard.KeyFunctions
{
/// <summary>
/// Key function used to update the keyboard layout.
/// </summary>
[CreateAssetMenu(fileName = "Layout Function", menuName = "XR/Spatial Keyboard/Layout Key Function", order = 1)]
public class LayoutFunction : KeyFunction
{
/// <inheritdoc />
public override void ProcessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext != null)
keyboardContext.UpdateLayout(key.GetEffectiveCharacter());
}
}
}

View file

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

View file

@ -0,0 +1,71 @@
namespace UnityEngine.XR.Interaction.Toolkit.Samples.SpatialKeyboard.KeyFunctions
{
/// <summary>
/// Key function used to process shift and caps lock functionality.
/// </summary>
[CreateAssetMenu(fileName = "Shift Function", menuName = "XR/Spatial Keyboard/Shift Key Function", order = 1)]
public class ShiftFunction : KeyFunction
{
[SerializeField]
Sprite m_CapsLockDisplayIcon;
public Sprite capsLockDisplayIcon
{
get => m_CapsLockDisplayIcon;
set => m_CapsLockDisplayIcon = value;
}
/// <inheritdoc />
public override Sprite GetDisplayIcon(XRKeyboard keyboardContext, XRKeyboardKey key)
{
// This method won't be called unless OverrideDisplayIcon below returns true,
// so no need for logic to return a shift display icon, which is already set up
// as the default in the UI.
return m_CapsLockDisplayIcon;
}
/// <inheritdoc />
public override bool OverrideDisplayIcon(XRKeyboard keyboardContext, XRKeyboardKey key)
{
return keyboardContext != null && keyboardContext.capsLocked;
}
/// <inheritdoc />
public override void ProcessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext == null)
return;
var keyCode = KeyCode.LeftShift;
// Check the caps lock state of the keyboard. If they key is shifted, check if there is a double click.
if (keyboardContext.capsLocked ||(keyboardContext.shifted && key.timeSinceLastClick < keyboardContext.doubleClickInterval))
keyCode = KeyCode.CapsLock;
keyboardContext.ProcessKeyCode(keyCode);
}
/// <inheritdoc />
public override void PostprocessKey(XRKeyboard keyboardContext, XRKeyboardKey key)
{
base.PostprocessKey(keyboardContext, key);
RefreshKeyHighlight(keyboardContext, key);
}
/// <inheritdoc />
public override void ProcessRefreshDisplay(XRKeyboard keyboardContext, XRKeyboardKey key)
{
base.ProcessRefreshDisplay(keyboardContext, key);
RefreshKeyHighlight(keyboardContext, key);
}
protected void RefreshKeyHighlight(XRKeyboard keyboardContext, XRKeyboardKey key)
{
if (keyboardContext == null)
return;
var highlight = keyboardContext.capsLocked || keyboardContext.shifted;
key.EnableHighlight(highlight);
}
}
}

View file

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

Some files were not shown because too many files have changed in this diff Show more