UI 자동화를 위해 바인딩 기능 구현
- 유니티 에셋 인증 오류로 meta 재생성
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"displayName": "Visualizers",
|
||||
"description": "Several example visualizations of input controls/devices and input actions."
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8429651427a640919754290f3704312
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,501 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 1162315431}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &676010914
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 676010918}
|
||||
- component: {fileID: 676010917}
|
||||
- component: {fileID: 676010916}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &676010916
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &676010917
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &676010918
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!850595691 &1162315431
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Settings.lighting
|
||||
serializedVersion: 6
|
||||
m_GIWorkflowMode: 1
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
m_BounceScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 1
|
||||
m_BakeBackend: 1
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 40
|
||||
m_Padding: 2
|
||||
m_LightmapCompression: 3
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAO: 0
|
||||
m_MixedBakeMode: 2
|
||||
m_LightmapsBakeMode: 1
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 256
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRMinBounces: 2
|
||||
m_PVREnvironmentImportanceSampling: 1
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
m_NumRaysToShootPerTexel: -1
|
||||
m_RespectSceneVisibilityWhenBakingGI: 0
|
||||
--- !u!114 &2122909276 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 5802899217532024206, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 5430831075364511436}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1001 &5430831075364511436
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 5430831073950378564, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074071876626, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074153646139, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074316365814, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074333637590, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074406035310, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074569589722, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074657706043, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074722065634, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074890777048, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074908778959, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831074960731594, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075105443483, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075159756558, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075192722340, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075336578713, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541849, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: GamepadVis
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 955.3655
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 464.9797
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -160.45508
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075476541851, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075516136799, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrent
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075516136799, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075516136799, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentForControlIndex
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075640135793, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075882524474, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075888579014, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075958221745, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5430831075990510060, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5802899217532024206, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_Master
|
||||
value:
|
||||
objectReference: {fileID: 2122909276}
|
||||
- target: {fileID: 5802899217532024206, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6586345530156004295, guid: b8429651427a640919754290f3704312,
|
||||
type: 3}
|
||||
propertyPath: m_UseCurrentDevice
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: b8429651427a640919754290f3704312, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 676010918}
|
||||
- {fileID: 5430831075364511436}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 60155d44a3f544d08a44a9fa0b5e2c4e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,325 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
////TODO: support ProcessEventsManually
|
||||
////TODO: add way to pick by player index
|
||||
|
||||
// Some fields assigned through only through serialization.
|
||||
#pragma warning disable CS0649
|
||||
|
||||
namespace UnityEngine.InputSystem.Samples
|
||||
{
|
||||
/// <summary>
|
||||
/// A component for debugging purposes that adds an on-screen display which shows
|
||||
/// activity on an input action over time (<see cref="InputActionVisualizer.Visualization.Interaction"/>)
|
||||
/// or an action's current value (<see cref="InputActionVisualizer.Visualization.Value"/>).
|
||||
/// </summary>
|
||||
/// <seealso cref="InputControlVisualizer"/>
|
||||
[AddComponentMenu("Input/Debug/Input Action Visualizer")]
|
||||
[ExecuteInEditMode]
|
||||
public class InputActionVisualizer : InputVisualizer
|
||||
{
|
||||
/// <summary>
|
||||
/// The action that is being visualized. May be null.
|
||||
/// </summary>
|
||||
public InputAction action => m_Action;
|
||||
|
||||
protected void FixedUpdate()
|
||||
{
|
||||
if (m_Visualization != Visualization.Value || m_Action == null || m_Visualizer == null)
|
||||
return;
|
||||
if (InputSystem.settings.updateMode != InputSettings.UpdateMode.ProcessEventsInFixedUpdate)
|
||||
return;
|
||||
RecordValue(Time.fixedTime);
|
||||
}
|
||||
|
||||
protected void Update()
|
||||
{
|
||||
if (m_Visualization != Visualization.Value || m_Action == null || m_Visualizer == null)
|
||||
return;
|
||||
if (InputSystem.settings.updateMode != InputSettings.UpdateMode.ProcessEventsInDynamicUpdate)
|
||||
return;
|
||||
RecordValue(Time.time);
|
||||
}
|
||||
|
||||
protected new void OnEnable()
|
||||
{
|
||||
if (m_Visualization == Visualization.None)
|
||||
return;
|
||||
|
||||
base.OnEnable();
|
||||
|
||||
ResolveAction();
|
||||
SetupVisualizer();
|
||||
|
||||
if (s_EnabledInstances == null)
|
||||
s_EnabledInstances = new List<InputActionVisualizer>();
|
||||
if (s_EnabledInstances.Count == 0)
|
||||
InputSystem.onActionChange += OnActionChange;
|
||||
s_EnabledInstances.Add(this);
|
||||
}
|
||||
|
||||
protected new void OnDisable()
|
||||
{
|
||||
base.OnDisable();
|
||||
|
||||
if (s_EnabledInstances != null)
|
||||
{
|
||||
s_EnabledInstances.Remove(this);
|
||||
if (s_EnabledInstances.Count == 0)
|
||||
InputSystem.onActionChange -= OnActionChange;
|
||||
}
|
||||
|
||||
if (m_Visualization == Visualization.Interaction && m_Action != null)
|
||||
{
|
||||
m_Action.started -= OnActionTriggered;
|
||||
m_Action.performed -= OnActionTriggered;
|
||||
m_Action.canceled -= OnActionTriggered;
|
||||
}
|
||||
}
|
||||
|
||||
protected new void OnGUI()
|
||||
{
|
||||
if (m_Visualization == Visualization.None)
|
||||
return;
|
||||
|
||||
if (Event.current.type != EventType.Repaint)
|
||||
return;
|
||||
|
||||
base.OnGUI();
|
||||
|
||||
if (m_ShowControlName && m_ActiveControlName != null)
|
||||
VisualizationHelpers.DrawText(m_ActiveControlName, new Vector2(m_Rect.x, m_Rect.yMax),
|
||||
VisualizationHelpers.ValueTextStyle);
|
||||
}
|
||||
|
||||
private void RecordValue(double time)
|
||||
{
|
||||
Debug.Assert(m_Action != null);
|
||||
Debug.Assert(m_Visualizer != null);
|
||||
|
||||
var value = m_Action.ReadValueAsObject();
|
||||
m_Visualizer.AddSample(value, time);
|
||||
|
||||
if (m_ShowControlName)
|
||||
RecordControlName();
|
||||
}
|
||||
|
||||
private void RecordControlName()
|
||||
{
|
||||
var control = m_Action.activeControl;
|
||||
if (control == m_ActiveControl)
|
||||
return;
|
||||
|
||||
m_ActiveControl = control;
|
||||
m_ActiveControlName = control != null ? new GUIContent(control.path) : null;
|
||||
}
|
||||
|
||||
private void ResolveAction()
|
||||
{
|
||||
// If we have a reference to an action, try that first.
|
||||
if (m_ActionReference != null)
|
||||
m_Action = m_ActionReference.action;
|
||||
|
||||
// If we didn't get an action from that but we have an action name,
|
||||
// just search through the currently enabled actions for one that
|
||||
// matches by name.
|
||||
if (m_Action == null && !string.IsNullOrEmpty(m_ActionName))
|
||||
{
|
||||
var slashIndex = m_ActionName.IndexOf('/');
|
||||
var mapName = slashIndex != -1 ? m_ActionName.Substring(0, slashIndex) : null;
|
||||
var actionName = slashIndex != -1 ? m_ActionName.Substring(slashIndex + 1) : m_ActionName;
|
||||
|
||||
var enabledActions = InputSystem.ListEnabledActions();
|
||||
foreach (var action in enabledActions)
|
||||
{
|
||||
if (string.Compare(actionName, action.name, StringComparison.InvariantCultureIgnoreCase) != 0)
|
||||
continue;
|
||||
|
||||
if (mapName != null && action.actionMap != null && string.Compare(mapName, action.actionMap.name,
|
||||
StringComparison.InvariantCultureIgnoreCase) != 0)
|
||||
continue;
|
||||
|
||||
m_Action = action;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If we still don't have an action, there's nothing much for us to do.
|
||||
// The action may show up at a later point.
|
||||
if (m_Action == null)
|
||||
return;
|
||||
|
||||
if (m_Visualization == Visualization.Interaction)
|
||||
{
|
||||
m_Action.performed += OnActionTriggered;
|
||||
m_Action.started += OnActionTriggered;
|
||||
m_Action.canceled += OnActionTriggered;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetupVisualizer()
|
||||
{
|
||||
m_Visualizer = null;
|
||||
if (m_Action == null)
|
||||
return;
|
||||
|
||||
switch (m_Visualization)
|
||||
{
|
||||
case Visualization.Value:
|
||||
switch (m_Action.type)
|
||||
{
|
||||
case InputActionType.Button:
|
||||
m_Visualizer = new VisualizationHelpers.ScalarVisualizer<float>
|
||||
{
|
||||
limitMax = 1
|
||||
};
|
||||
break;
|
||||
|
||||
case InputActionType.Value:
|
||||
case InputActionType.PassThrough:
|
||||
if (!string.IsNullOrEmpty(m_Action.expectedControlType))
|
||||
{
|
||||
var layout = InputSystem.LoadLayout(m_Action.expectedControlType);
|
||||
if (layout != null)
|
||||
{
|
||||
var valueType = layout.GetValueType();
|
||||
if (valueType == typeof(float))
|
||||
m_Visualizer = new VisualizationHelpers.ScalarVisualizer<float>
|
||||
{
|
||||
limitMax = 1
|
||||
};
|
||||
else if (valueType == typeof(int))
|
||||
m_Visualizer = new VisualizationHelpers.ScalarVisualizer<int>
|
||||
{
|
||||
limitMax = 1
|
||||
};
|
||||
else if (valueType == typeof(Vector2))
|
||||
m_Visualizer = new VisualizationHelpers.Vector2Visualizer();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case Visualization.Interaction:
|
||||
// We don't really know which interactions are sitting on the action and its bindings
|
||||
// and while we could do and perform work to find out, it's simpler to just wait until
|
||||
// we get input and then whatever interactions we encounter as we go along. Also keeps
|
||||
// the visualization a little less cluttered.
|
||||
m_Visualizer = new VisualizationHelpers.TimelineVisualizer();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnActionDisabled()
|
||||
{
|
||||
}
|
||||
|
||||
private void OnActionTriggered(InputAction.CallbackContext context)
|
||||
{
|
||||
Debug.Assert(m_Visualization == Visualization.Interaction);
|
||||
|
||||
var timelineName = "Default";
|
||||
var interaction = context.interaction;
|
||||
if (interaction != null)
|
||||
{
|
||||
timelineName = interaction.GetType().Name;
|
||||
if (timelineName.EndsWith("Interaction"))
|
||||
timelineName = timelineName.Substring(0, timelineName.Length - "Interaction".Length);
|
||||
}
|
||||
|
||||
var visualizer = (VisualizationHelpers.TimelineVisualizer)m_Visualizer;
|
||||
var timelineIndex = visualizer.GetTimeline(timelineName);
|
||||
if (timelineIndex == -1)
|
||||
{
|
||||
Color color;
|
||||
timelineIndex = visualizer.timelineCount;
|
||||
if (timelineIndex < s_InteractionColors.Length)
|
||||
color = s_InteractionColors[timelineIndex];
|
||||
else
|
||||
color = new Color(Random.value, Random.value, Random.value, 1);
|
||||
|
||||
visualizer.AddTimeline(timelineName, color);
|
||||
if (timelineIndex > 0)
|
||||
visualizer.showLegend = true;
|
||||
}
|
||||
|
||||
var time = (float)context.time;
|
||||
switch (context.phase)
|
||||
{
|
||||
case InputActionPhase.Canceled:
|
||||
visualizer.AddSample(timelineIndex, 0f, time);
|
||||
break;
|
||||
|
||||
case InputActionPhase.Performed:
|
||||
visualizer.AddSample(timelineIndex, 1f, time);
|
||||
visualizer.AddSample(timelineIndex, 0f, time);
|
||||
break;
|
||||
|
||||
case InputActionPhase.Started:
|
||||
visualizer.AddSample(timelineIndex, 0.5f, time);
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_ShowControlName)
|
||||
RecordControlName();
|
||||
}
|
||||
|
||||
private static void OnActionChange(object actionOrMap, InputActionChange change)
|
||||
{
|
||||
switch (change)
|
||||
{
|
||||
case InputActionChange.ActionEnabled:
|
||||
case InputActionChange.ActionMapEnabled:
|
||||
for (var i = 0; i < s_EnabledInstances.Count; ++i)
|
||||
if (s_EnabledInstances[i].m_Action == null)
|
||||
{
|
||||
s_EnabledInstances[i].ResolveAction();
|
||||
if (s_EnabledInstances[i].m_Action != null)
|
||||
s_EnabledInstances[i].SetupVisualizer();
|
||||
}
|
||||
break;
|
||||
|
||||
case InputActionChange.ActionDisabled:
|
||||
for (var i = 0; i < s_EnabledInstances.Count; ++i)
|
||||
if (actionOrMap == s_EnabledInstances[i].m_Action)
|
||||
s_EnabledInstances[i].OnActionDisabled();
|
||||
break;
|
||||
|
||||
case InputActionChange.ActionMapDisabled:
|
||||
for (var i = 0; i < s_EnabledInstances.Count; ++i)
|
||||
if (s_EnabledInstances[i].m_Action?.actionMap == actionOrMap)
|
||||
s_EnabledInstances[i].OnActionDisabled();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField] private Visualization m_Visualization;
|
||||
[SerializeField] private InputActionReference m_ActionReference;
|
||||
[SerializeField] private string m_ActionName;
|
||||
[SerializeField] private bool m_ShowControlName;
|
||||
|
||||
[NonSerialized] private InputAction m_Action;
|
||||
[NonSerialized] private InputControl m_ActiveControl;
|
||||
[NonSerialized] private GUIContent m_ActiveControlName;
|
||||
|
||||
private static List<InputActionVisualizer> s_EnabledInstances;
|
||||
private static readonly Color[] s_InteractionColors =
|
||||
{
|
||||
new Color(1, 0, 0, 1),
|
||||
new Color(0, 0, 1, 1),
|
||||
new Color(1, 1, 0, 1),
|
||||
new Color(1, 0, 1, 1),
|
||||
new Color(0, 1, 1, 1),
|
||||
new Color(0, 1, 0, 1),
|
||||
};
|
||||
|
||||
public enum Visualization
|
||||
{
|
||||
None,
|
||||
Value,
|
||||
Interaction,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 939ce9f3839b54466af594f7854ed222
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,415 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.InputSystem.Layouts;
|
||||
using UnityEngine.InputSystem.LowLevel;
|
||||
|
||||
////TODO: add way to plot values over time
|
||||
|
||||
// Goal is to build this out into something that can visualize a large number of
|
||||
// aspects about an InputControl/InputDevice especially with an eye towards making
|
||||
// it a good deal to debug any input collection/processing irregularities that may
|
||||
// be seen in players (or the editor, for that matter).
|
||||
|
||||
// Some fields assigned through only through serialization.
|
||||
#pragma warning disable CS0649
|
||||
|
||||
namespace UnityEngine.InputSystem.Samples
|
||||
{
|
||||
/// <summary>
|
||||
/// A component for debugging purposes that adds an on-screen display which shows
|
||||
/// activity on an input control over time.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This component is most useful for debugging input directly on the source device.
|
||||
/// </remarks>
|
||||
/// <seealso cref="InputActionVisualizer"/>
|
||||
[AddComponentMenu("Input/Debug/Input Control Visualizer")]
|
||||
[ExecuteInEditMode]
|
||||
public class InputControlVisualizer : InputVisualizer
|
||||
{
|
||||
/// <summary>
|
||||
/// What kind of visualization to show.
|
||||
/// </summary>
|
||||
public Mode visualization
|
||||
{
|
||||
get => m_Visualization;
|
||||
set
|
||||
{
|
||||
if (m_Visualization == value)
|
||||
return;
|
||||
m_Visualization = value;
|
||||
SetupVisualizer();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Path of the control that is to be visualized.
|
||||
/// </summary>
|
||||
/// <seealso cref="InputControlPath"/>
|
||||
/// <seealso cref="InputControl.path"/>
|
||||
public string controlPath
|
||||
{
|
||||
get => m_ControlPath;
|
||||
set
|
||||
{
|
||||
m_ControlPath = value;
|
||||
if (m_Control != null)
|
||||
ResolveControl();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// If, at runtime, multiple controls are matching <see cref="controlPath"/>, this property
|
||||
/// determines the index of the control that is retrieved from the possible options.
|
||||
/// </summary>
|
||||
public int controlIndex
|
||||
{
|
||||
get => m_ControlIndex;
|
||||
set
|
||||
{
|
||||
m_ControlIndex = value;
|
||||
if (m_Control != null)
|
||||
ResolveControl();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The control resolved from <see cref="controlPath"/> at runtime. May be null.
|
||||
/// </summary>
|
||||
public InputControl control => m_Control;
|
||||
|
||||
protected new void OnEnable()
|
||||
{
|
||||
if (m_Visualization == Mode.None)
|
||||
return;
|
||||
|
||||
if (s_EnabledInstances == null)
|
||||
s_EnabledInstances = new List<InputControlVisualizer>();
|
||||
if (s_EnabledInstances.Count == 0)
|
||||
{
|
||||
InputSystem.onDeviceChange += OnDeviceChange;
|
||||
InputSystem.onEvent += OnEvent;
|
||||
}
|
||||
s_EnabledInstances.Add(this);
|
||||
|
||||
ResolveControl();
|
||||
|
||||
base.OnEnable();
|
||||
}
|
||||
|
||||
protected new void OnDisable()
|
||||
{
|
||||
if (m_Visualization == Mode.None)
|
||||
return;
|
||||
|
||||
if (s_EnabledInstances != null)
|
||||
{
|
||||
s_EnabledInstances.Remove(this);
|
||||
if (s_EnabledInstances.Count == 0)
|
||||
{
|
||||
InputSystem.onDeviceChange -= OnDeviceChange;
|
||||
InputSystem.onEvent -= OnEvent;
|
||||
}
|
||||
}
|
||||
|
||||
m_Control = null;
|
||||
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
protected new void OnGUI()
|
||||
{
|
||||
if (m_Visualization == Mode.None)
|
||||
return;
|
||||
|
||||
base.OnGUI();
|
||||
}
|
||||
|
||||
protected new void OnValidate()
|
||||
{
|
||||
ResolveControl();
|
||||
base.OnValidate();
|
||||
}
|
||||
|
||||
[Tooltip("The type of visualization to perform for the control.")]
|
||||
[SerializeField] private Mode m_Visualization;
|
||||
[Tooltip("Path of the control that should be visualized. If at runtime, multiple "
|
||||
+ "controls match the given path, the 'Control Index' property can be used to decide "
|
||||
+ "which of the controls to visualize.")]
|
||||
[InputControl, SerializeField] private string m_ControlPath;
|
||||
[Tooltip("If multiple controls match 'Control Path' at runtime, this property decides "
|
||||
+ "which control to visualize from the list of candidates. It is a zero-based index. " +
|
||||
"This is ignored if using current device instead.")]
|
||||
[SerializeField] private int m_ControlIndex;
|
||||
|
||||
[Tooltip("If set, ignores control index and maps a control of the current device (if it exist) or none.")]
|
||||
[SerializeField] private bool m_UseCurrentDevice;
|
||||
|
||||
[NonSerialized] private InputControl m_Control;
|
||||
|
||||
private static List<InputControlVisualizer> s_EnabledInstances;
|
||||
|
||||
private static InputControl ResolveCurrentControl(InputControlList<InputControl> candidates)
|
||||
{
|
||||
// Only accept control that belongs to the current device of the same device type as candidate control device type.
|
||||
foreach (var candidate in candidates)
|
||||
{
|
||||
var currentDevice = GetCurrentDevice(candidate.device);
|
||||
if (candidate.device == currentDevice)
|
||||
return candidate;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void ResolveControl()
|
||||
{
|
||||
m_Control = null;
|
||||
if (string.IsNullOrEmpty(m_ControlPath))
|
||||
return;
|
||||
|
||||
using (var candidates = InputSystem.FindControls(m_ControlPath))
|
||||
{
|
||||
var numCandidates = candidates.Count;
|
||||
if (m_UseCurrentDevice)
|
||||
m_Control = ResolveCurrentControl(candidates);
|
||||
else if (numCandidates > 1 && m_ControlIndex < numCandidates && m_ControlIndex >= 0)
|
||||
m_Control = candidates[m_ControlIndex];
|
||||
else if (numCandidates > 0)
|
||||
m_Control = candidates[0];
|
||||
}
|
||||
|
||||
SetupVisualizer();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// There is currently no callback when current device changes so we will reattempt to resolve control
|
||||
if (m_UseCurrentDevice)
|
||||
{
|
||||
if (m_Control != null && m_Control.device != GetCurrentDevice(m_Control.device))
|
||||
m_Control = null;
|
||||
if (m_Control == null)
|
||||
ResolveControl();
|
||||
}
|
||||
}
|
||||
|
||||
private static InputDevice GetCurrentDevice(InputDevice device)
|
||||
{
|
||||
if (device is Gamepad) return Gamepad.current;
|
||||
if (device is Mouse) return Mouse.current;
|
||||
if (device is Pen) return Pen.current;
|
||||
if (device is Pointer) return Pointer.current; // should be last, because it's a base class for Mouse and Pen
|
||||
|
||||
throw new ArgumentException(
|
||||
$"Expected device type that implements .current, but got '{device.name}' (deviceId: {device.deviceId}) instead ");
|
||||
}
|
||||
|
||||
private static VisualizationHelpers.Visualizer CreateVisualizer(Mode mode, InputControl control, int historySamples)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case Mode.Value:
|
||||
{
|
||||
// This visualization mode requires a control
|
||||
if (control == null)
|
||||
return null;
|
||||
|
||||
VisualizationHelpers.Visualizer visualizer = null;
|
||||
var valueType = control.valueType;
|
||||
if (valueType == typeof(Vector2))
|
||||
visualizer = new VisualizationHelpers.Vector2Visualizer(historySamples);
|
||||
else if (valueType == typeof(float))
|
||||
visualizer = new VisualizationHelpers.ScalarVisualizer<float>(historySamples)
|
||||
{
|
||||
////TODO: pass actual min/max limits of control
|
||||
limitMax = 1,
|
||||
limitMin = 0
|
||||
};
|
||||
else if (valueType == typeof(int))
|
||||
visualizer = new VisualizationHelpers.ScalarVisualizer<int>(historySamples)
|
||||
{
|
||||
////TODO: pass actual min/max limits of control
|
||||
limitMax = 1,
|
||||
limitMin = 0
|
||||
};
|
||||
else
|
||||
{
|
||||
////TODO: generic visualizer
|
||||
}
|
||||
return visualizer;
|
||||
}
|
||||
|
||||
case Mode.Events:
|
||||
{
|
||||
var visualizer = new VisualizationHelpers.TimelineVisualizer(historySamples)
|
||||
{
|
||||
timeUnit = VisualizationHelpers.TimelineVisualizer.TimeUnit.Frames,
|
||||
historyDepth = historySamples,
|
||||
showLimits = true,
|
||||
limitsY = new Vector2(0, 5) // Will expand upward automatically
|
||||
};
|
||||
visualizer.AddTimeline("Events", Color.green,
|
||||
VisualizationHelpers.TimelineVisualizer.PlotType.BarChart);
|
||||
return visualizer;
|
||||
}
|
||||
|
||||
case Mode.MaximumLag:
|
||||
{
|
||||
var visualizer = new VisualizationHelpers.TimelineVisualizer(historySamples)
|
||||
{
|
||||
timeUnit = VisualizationHelpers.TimelineVisualizer.TimeUnit.Frames,
|
||||
historyDepth = historySamples,
|
||||
valueUnit = new GUIContent("ms"),
|
||||
showLimits = true,
|
||||
limitsY = new Vector2(0, 6)
|
||||
};
|
||||
visualizer.AddTimeline("MaxLag", Color.red,
|
||||
VisualizationHelpers.TimelineVisualizer.PlotType.BarChart);
|
||||
return visualizer;
|
||||
}
|
||||
|
||||
case Mode.Bytes:
|
||||
{
|
||||
var visualizer = new VisualizationHelpers.TimelineVisualizer(historySamples)
|
||||
{
|
||||
timeUnit = VisualizationHelpers.TimelineVisualizer.TimeUnit.Frames,
|
||||
valueUnit = new GUIContent("bytes"),
|
||||
historyDepth = historySamples,
|
||||
showLimits = true,
|
||||
limitsY = new Vector2(0, 64)
|
||||
};
|
||||
visualizer.AddTimeline("Bytes", Color.red,
|
||||
VisualizationHelpers.TimelineVisualizer.PlotType.BarChart);
|
||||
return visualizer;
|
||||
}
|
||||
|
||||
case Mode.DeviceCurrent:
|
||||
return new VisualizationHelpers.CurrentDeviceVisualizer();
|
||||
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(mode.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void SetupVisualizer()
|
||||
{
|
||||
m_Visualizer = CreateVisualizer(m_Visualization, m_Control, m_HistorySamples);
|
||||
}
|
||||
|
||||
private static void OnDeviceChange(InputDevice device, InputDeviceChange change)
|
||||
{
|
||||
if (change != InputDeviceChange.Added && change != InputDeviceChange.Removed)
|
||||
return;
|
||||
|
||||
for (var i = 0; i < s_EnabledInstances.Count; ++i)
|
||||
{
|
||||
var component = s_EnabledInstances[i];
|
||||
if (change == InputDeviceChange.Removed && component.m_Control != null &&
|
||||
component.m_Control.device == device)
|
||||
component.ResolveControl();
|
||||
else if (change == InputDeviceChange.Added)
|
||||
component.ResolveControl();
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnEvent(InputEventPtr eventPtr, InputDevice device)
|
||||
{
|
||||
// Ignore very first update as we usually get huge lag spikes and event count
|
||||
// spikes in it from stuff that has accumulated while going into play mode or
|
||||
// starting up the player.
|
||||
if (InputState.updateCount <= 1)
|
||||
return;
|
||||
|
||||
if (InputState.currentUpdateType == InputUpdateType.Editor)
|
||||
return;
|
||||
|
||||
if (!eventPtr.IsA<StateEvent>() && !eventPtr.IsA<DeltaStateEvent>())
|
||||
return;
|
||||
|
||||
for (var i = 0; i < s_EnabledInstances.Count; ++i)
|
||||
{
|
||||
var component = s_EnabledInstances[i];
|
||||
if (component.m_Control?.device != device || component.m_Visualizer == null)
|
||||
continue;
|
||||
|
||||
component.OnEventImpl(eventPtr, device);
|
||||
}
|
||||
}
|
||||
|
||||
private unsafe void OnEventImpl(InputEventPtr eventPtr, InputDevice device)
|
||||
{
|
||||
switch (m_Visualization)
|
||||
{
|
||||
case Mode.Value:
|
||||
{
|
||||
var statePtr = m_Control.GetStatePtrFromStateEvent(eventPtr);
|
||||
if (statePtr == null)
|
||||
return; // No value for control in event.
|
||||
var value = m_Control.ReadValueFromStateAsObject(statePtr);
|
||||
m_Visualizer.AddSample(value, eventPtr.time);
|
||||
break;
|
||||
}
|
||||
|
||||
case Mode.Events:
|
||||
{
|
||||
var visualizer = (VisualizationHelpers.TimelineVisualizer)m_Visualizer;
|
||||
var frame = (int)InputState.updateCount;
|
||||
ref var valueRef = ref visualizer.GetOrCreateSample(0, frame);
|
||||
var value = valueRef.ToInt32() + 1;
|
||||
valueRef = value;
|
||||
visualizer.limitsY =
|
||||
new Vector2(0, Mathf.Max(value, visualizer.limitsY.y));
|
||||
break;
|
||||
}
|
||||
|
||||
case Mode.MaximumLag:
|
||||
{
|
||||
var visualizer = (VisualizationHelpers.TimelineVisualizer)m_Visualizer;
|
||||
var lag = (Time.realtimeSinceStartup - eventPtr.time) * 1000; // In milliseconds.
|
||||
var frame = (int)InputState.updateCount;
|
||||
ref var valueRef = ref visualizer.GetOrCreateSample(0, frame);
|
||||
|
||||
if (lag > valueRef.ToDouble())
|
||||
{
|
||||
valueRef = lag;
|
||||
if (lag > visualizer.limitsY.y)
|
||||
visualizer.limitsY = new Vector2(0, Mathf.Ceil((float)lag));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Mode.Bytes:
|
||||
{
|
||||
var visualizer = (VisualizationHelpers.TimelineVisualizer)m_Visualizer;
|
||||
var frame = (int)InputState.updateCount;
|
||||
ref var valueRef = ref visualizer.GetOrCreateSample(0, frame);
|
||||
var value = valueRef.ToInt32() + eventPtr.sizeInBytes;
|
||||
valueRef = value;
|
||||
visualizer.limitsY =
|
||||
new Vector2(0, Mathf.Max(value, visualizer.limitsY.y));
|
||||
break;
|
||||
}
|
||||
|
||||
case Mode.DeviceCurrent:
|
||||
{
|
||||
m_Visualizer.AddSample(device, eventPtr.time);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines which aspect of the control should be visualized.
|
||||
/// </summary>
|
||||
public enum Mode
|
||||
{
|
||||
None = 0,
|
||||
Value = 1,
|
||||
Events = 4,
|
||||
MaximumLag = 6,
|
||||
Bytes = 7,
|
||||
DeviceCurrent = 8,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50c7363fac4d24ae8a679e3e8f1fa838
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
|
||||
// Some fields assigned through only through serialization.
|
||||
#pragma warning disable CS0649
|
||||
|
||||
namespace UnityEngine.InputSystem.Samples
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for <see cref="InputActionVisualizer"/> and <see cref="InputControlVisualizer"/>.
|
||||
/// Not meant to be extended outside of input system.
|
||||
/// </summary>
|
||||
public abstract class InputVisualizer : MonoBehaviour
|
||||
{
|
||||
protected void OnEnable()
|
||||
{
|
||||
ResolveParent();
|
||||
}
|
||||
|
||||
protected void OnDisable()
|
||||
{
|
||||
m_Parent = null;
|
||||
m_Visualizer = null;
|
||||
}
|
||||
|
||||
protected void OnGUI()
|
||||
{
|
||||
if (Event.current.type != EventType.Repaint)
|
||||
return;
|
||||
|
||||
// If we have a parent, offset our rect by the parent.
|
||||
var rect = m_Rect;
|
||||
if (m_Parent != null)
|
||||
rect.position += m_Parent.m_Rect.position;
|
||||
|
||||
if (m_Visualizer != null)
|
||||
m_Visualizer.OnDraw(rect);
|
||||
else
|
||||
VisualizationHelpers.DrawRectangle(rect, new Color(1, 1, 1, 0.1f));
|
||||
|
||||
// Draw label, if we have one.
|
||||
if (!string.IsNullOrEmpty(m_Label))
|
||||
{
|
||||
if (m_LabelContent == null)
|
||||
m_LabelContent = new GUIContent(m_Label);
|
||||
if (s_LabelStyle == null)
|
||||
{
|
||||
s_LabelStyle = new GUIStyle();
|
||||
s_LabelStyle.normal.textColor = Color.yellow;
|
||||
s_LabelStyle.fontSize = 20;
|
||||
}
|
||||
|
||||
////FIXME: why does CalcSize not calculate the rect width correctly?
|
||||
var labelSize = s_LabelStyle.CalcSize(m_LabelContent);
|
||||
var labelRect = new Rect(rect.x + 4, rect.y, labelSize.x + 4, rect.height);
|
||||
|
||||
s_LabelStyle.Draw(labelRect, m_LabelContent, false, false, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnValidate()
|
||||
{
|
||||
ResolveParent();
|
||||
m_LabelContent = null;
|
||||
}
|
||||
|
||||
protected void ResolveParent()
|
||||
{
|
||||
var parentTransform = transform.parent;
|
||||
if (parentTransform != null)
|
||||
m_Parent = parentTransform.GetComponent<InputControlVisualizer>();
|
||||
}
|
||||
|
||||
[SerializeField] internal string m_Label;
|
||||
[SerializeField] internal int m_HistorySamples = 500;
|
||||
[SerializeField] internal float m_TimeWindow = 3;
|
||||
[SerializeField] internal Rect m_Rect = new Rect(10, 10, 300, 30);
|
||||
|
||||
[NonSerialized] internal GUIContent m_LabelContent;
|
||||
[NonSerialized] internal VisualizationHelpers.Visualizer m_Visualizer;
|
||||
[NonSerialized] internal InputVisualizer m_Parent;
|
||||
|
||||
private static GUIStyle s_LabelStyle;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 55e8b429cfd654e2f89f16b18d99cf4b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,697 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1425893226964488728
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8404550706546444740}
|
||||
- component: {fileID: 9057694317555835649}
|
||||
m_Layer: 0
|
||||
m_Name: Scroll
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8404550706546444740
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1425893226964488728}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &9057694317555835649
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1425893226964488728}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Scroll
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 437.5
|
||||
y: 0
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/scroll
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667828813364402
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667828813364403}
|
||||
- component: {fileID: 2680667828813364412}
|
||||
m_Layer: 0
|
||||
m_Name: MMB
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667828813364403
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667828813364402}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667828813364412
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667828813364402}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: MMB
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 106.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/middleButton
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667828976453752
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667828976453753}
|
||||
- component: {fileID: 2680667828976453754}
|
||||
m_Layer: 0
|
||||
m_Name: LMB
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667828976453753
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667828976453752}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667828976453754
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667828976453752}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: LMB
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 31.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/leftButton
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667828982178413
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667828982178415}
|
||||
- component: {fileID: 2680667828982178414}
|
||||
m_Layer: 0
|
||||
m_Name: Events
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667828982178415
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667828982178413}
|
||||
serializedVersion: 2
|
||||
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: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667828982178414
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667828982178413}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Events
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 25
|
||||
y: 468.75
|
||||
width: 875
|
||||
height: 87.5
|
||||
m_Visualization: 4
|
||||
m_ControlPath: <Mouse>
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667830654736508
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667830654736509}
|
||||
- component: {fileID: 2680667830654736510}
|
||||
m_Layer: 0
|
||||
m_Name: Lag
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667830654736509
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830654736508}
|
||||
serializedVersion: 2
|
||||
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: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667830654736510
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830654736508}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Lag (ms)
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 25
|
||||
y: 575
|
||||
width: 875
|
||||
height: 87.5
|
||||
m_Visualization: 6
|
||||
m_ControlPath: <Mouse>
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667830751945958
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667830751945952}
|
||||
- component: {fileID: 2680667830751945959}
|
||||
m_Layer: 0
|
||||
m_Name: Position
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667830751945952
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830751945958}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667830751945959
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830751945958}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Position
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/position
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667830796240929
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667830796240931}
|
||||
- component: {fileID: 2680667830796240930}
|
||||
m_Layer: 0
|
||||
m_Name: MouseVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667830796240931
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830796240929}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 955.3655, y: 464.9797, z: -160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2680667830751945952}
|
||||
- {fileID: 2680667830847656253}
|
||||
- {fileID: 8404550706546444740}
|
||||
- {fileID: 2680667828976453753}
|
||||
- {fileID: 2680667828813364403}
|
||||
- {fileID: 2680667830881149239}
|
||||
- {fileID: 5324548079694949412}
|
||||
- {fileID: 4866584615845903581}
|
||||
- {fileID: 2680667828982178415}
|
||||
- {fileID: 2680667830654736509}
|
||||
- {fileID: 2680667830892693960}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667830796240930
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830796240929}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label:
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 15
|
||||
y: 10
|
||||
width: 300
|
||||
height: 30
|
||||
m_Visualization: 0
|
||||
m_ControlPath:
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667830847656252
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667830847656253}
|
||||
- component: {fileID: 2680667830847656254}
|
||||
m_Layer: 0
|
||||
m_Name: Delta
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667830847656253
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830847656252}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667830847656254
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830847656252}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Delta
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 218.75
|
||||
y: 0
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/delta
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667830881149238
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667830881149239}
|
||||
- component: {fileID: 2680667830881149232}
|
||||
m_Layer: 0
|
||||
m_Name: RMB
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667830881149239
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830881149238}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667830881149232
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830881149238}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: RMB
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 181.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/rightButton
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &2680667830892693967
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2680667830892693960}
|
||||
- component: {fileID: 2680667830892693961}
|
||||
m_Layer: 0
|
||||
m_Name: Bytes
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2680667830892693960
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830892693967}
|
||||
serializedVersion: 2
|
||||
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: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2680667830892693961
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2680667830892693967}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Bytes
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 25
|
||||
y: 687.5
|
||||
width: 875
|
||||
height: 87.5
|
||||
m_Visualization: 7
|
||||
m_ControlPath: <Mouse>
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &7796791542505312439
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4866584615845903581}
|
||||
- component: {fileID: 8216033930473527435}
|
||||
m_Layer: 0
|
||||
m_Name: BWD
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4866584615845903581
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7796791542505312439}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &8216033930473527435
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7796791542505312439}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: BWD
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 331.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/backButton
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &9216766396740359067
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5324548079694949412}
|
||||
- component: {fileID: 3793786591591815754}
|
||||
m_Layer: 0
|
||||
m_Name: FWD
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5324548079694949412
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9216766396740359067}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2680667830796240931}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3793786591591815754
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9216766396740359067}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: FWD
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 256.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Mouse>/forwardButton
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76c62aa07f01945d4b9afdb34d7a3396
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,291 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: 37931c9961b7ded4c914f75e1c05cec0,
|
||||
type: 2}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &676010914
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 676010918}
|
||||
- component: {fileID: 676010917}
|
||||
- component: {fileID: 676010916}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &676010916
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &676010917
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &676010918
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &2680667830097201012
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2680667830796240929, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: MouseVis
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 955.3655
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 464.9797
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -160.45508
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2680667830796240931, guid: 76c62aa07f01945d4b9afdb34d7a3396,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 76c62aa07f01945d4b9afdb34d7a3396, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 676010918}
|
||||
- {fileID: 2680667830097201012}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fef3f56dbc5ed42a08528b798af41a4e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,929 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3520677240532848139
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677240532848138}
|
||||
- component: {fileID: 3520677240532848141}
|
||||
m_Layer: 0
|
||||
m_Name: Eraser
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677240532848138
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677240532848139}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677240532848141
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677240532848139}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Eraser
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 468.75
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/eraser
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677240764781865
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677240764781864}
|
||||
- component: {fileID: 3520677240764781867}
|
||||
m_Layer: 0
|
||||
m_Name: Twist
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677240764781864
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677240764781865}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677240764781867
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677240764781865}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Twist
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 312.5
|
||||
y: 312.5
|
||||
width: 187.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/twist
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241026549177
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241026549176}
|
||||
- component: {fileID: 3520677241026549179}
|
||||
m_Layer: 0
|
||||
m_Name: Lag
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241026549176
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241026549177}
|
||||
serializedVersion: 2
|
||||
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: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241026549179
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241026549177}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Lag (ms)
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 25
|
||||
y: 575
|
||||
width: 875
|
||||
height: 87.5
|
||||
m_Visualization: 6
|
||||
m_ControlPath: <Pen>
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241337048307
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241337048306}
|
||||
- component: {fileID: 3520677241337048309}
|
||||
m_Layer: 0
|
||||
m_Name: Barrel2
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241337048306
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241337048307}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241337048309
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241337048307}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: 2nd
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 181.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/barrel2
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241357042698
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241357042701}
|
||||
- component: {fileID: 3520677241357042700}
|
||||
m_Layer: 0
|
||||
m_Name: Bytes
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241357042701
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241357042698}
|
||||
serializedVersion: 2
|
||||
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: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241357042700
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241357042698}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Bytes
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 25
|
||||
y: 687.5
|
||||
width: 875
|
||||
height: 87.5
|
||||
m_Visualization: 7
|
||||
m_ControlPath: <Pen>
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241370664185
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241370664184}
|
||||
- component: {fileID: 3520677241370664187}
|
||||
m_Layer: 0
|
||||
m_Name: Delta
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241370664184
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241370664185}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241370664187
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241370664185}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Delta
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 218.75
|
||||
y: 0
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/delta
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241453528548
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241453528550}
|
||||
- component: {fileID: 3520677241453528551}
|
||||
m_Layer: 0
|
||||
m_Name: PenVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241453528550
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241453528548}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 955.3655, y: 464.9797, z: -160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3520677241460091173}
|
||||
- {fileID: 3520677241370664184}
|
||||
- {fileID: 3520677241761661964}
|
||||
- {fileID: 3520677241631212988}
|
||||
- {fileID: 3520677241919970684}
|
||||
- {fileID: 3520677240764781864}
|
||||
- {fileID: 3520677241827783030}
|
||||
- {fileID: 3520677241337048306}
|
||||
- {fileID: 3520677242431053811}
|
||||
- {fileID: 3520677242357097670}
|
||||
- {fileID: 3520677240532848138}
|
||||
- {fileID: 3520677242061452019}
|
||||
- {fileID: 3520677241652670378}
|
||||
- {fileID: 3520677241026549176}
|
||||
- {fileID: 3520677241357042701}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241453528551
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241453528548}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label:
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 15
|
||||
y: 10
|
||||
width: 300
|
||||
height: 30
|
||||
m_Visualization: 0
|
||||
m_ControlPath:
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241460091171
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241460091173}
|
||||
- component: {fileID: 3520677241460091170}
|
||||
m_Layer: 0
|
||||
m_Name: Position
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241460091173
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241460091171}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241460091170
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241460091171}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Position
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/position
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241631212989
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241631212988}
|
||||
- component: {fileID: 3520677241631212991}
|
||||
m_Layer: 0
|
||||
m_Name: Tip
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241631212988
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241631212989}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241631212991
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241631212989}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Tip
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 31.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/tip
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241652670376
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241652670378}
|
||||
- component: {fileID: 3520677241652670379}
|
||||
m_Layer: 0
|
||||
m_Name: Events
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241652670378
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241652670376}
|
||||
serializedVersion: 2
|
||||
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: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241652670379
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241652670376}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Events
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 25
|
||||
y: 468.75
|
||||
width: 875
|
||||
height: 87.5
|
||||
m_Visualization: 4
|
||||
m_ControlPath: <Pen>
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241761661965
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241761661964}
|
||||
- component: {fileID: 3520677241761661967}
|
||||
m_Layer: 0
|
||||
m_Name: Tilt
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241761661964
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241761661965}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241761661967
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241761661965}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Tilt
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 437.5
|
||||
y: 0
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/tilt
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241827783031
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241827783030}
|
||||
- component: {fileID: 3520677241827783033}
|
||||
m_Layer: 0
|
||||
m_Name: Barrel1
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241827783030
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241827783031}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241827783033
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241827783031}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: 1st
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 106.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/barrel1
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677241919970685
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677241919970684}
|
||||
- component: {fileID: 3520677241919970687}
|
||||
m_Layer: 0
|
||||
m_Name: Pressure
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677241919970684
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241919970685}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677241919970687
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677241919970685}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Pressure
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 31.25
|
||||
y: 312.5
|
||||
width: 250
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/pressure
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677242061452016
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677242061452019}
|
||||
- component: {fileID: 3520677242061452018}
|
||||
m_Layer: 0
|
||||
m_Name: InRange
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677242061452019
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677242061452016}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677242061452018
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677242061452016}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: InRange
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 543.75
|
||||
y: 218.75
|
||||
width: 80
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/inRange
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677242357097671
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677242357097670}
|
||||
- component: {fileID: 3520677242357097673}
|
||||
m_Layer: 0
|
||||
m_Name: Barrel4
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677242357097670
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677242357097671}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677242357097673
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677242357097671}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: 4th
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 331.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/barrel4
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
--- !u!1 &3520677242431053808
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3520677242431053811}
|
||||
- component: {fileID: 3520677242431053810}
|
||||
m_Layer: 0
|
||||
m_Name: Barrel3
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3520677242431053811
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677242431053808}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -955.3655, y: -464.9797, z: 160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3520677241453528550}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3520677242431053810
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3520677242431053808}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 50c7363fac4d24ae8a679e3e8f1fa838, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: 3rd
|
||||
m_HistorySamples: 100
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 256.25
|
||||
y: 218.75
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ControlPath: <Pen>/barrel3
|
||||
m_ControlIndex: 0
|
||||
m_UseCurrentDevice: 0
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15e76881a88c849388ecd62eb8a05750
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,291 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: f24b0532bf4887e419c28633580a1b0e,
|
||||
type: 2}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &676010914
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 676010918}
|
||||
- component: {fileID: 676010917}
|
||||
- component: {fileID: 676010916}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &676010916
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &676010917
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &676010918
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3520677240537631409
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 3520677241453528548, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: PenVis
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 955.3655
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 464.9797
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -160.45508
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3520677241453528550, guid: 15e76881a88c849388ecd62eb8a05750,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 15e76881a88c849388ecd62eb8a05750, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 676010918}
|
||||
- {fileID: 3520677240537631409}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e35258e8d9ecf4a17b799d42b5ace6f3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"name": "SimpleControls",
|
||||
"maps": [
|
||||
{
|
||||
"name": "gameplay",
|
||||
"id": "265c38f5-dd18-4d34-b198-aec58e1627ff",
|
||||
"actions": [
|
||||
{
|
||||
"name": "fire",
|
||||
"type": "Button",
|
||||
"id": "1077f913-a9f9-41b1-acb3-b9ee0adbc744",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "move",
|
||||
"type": "Value",
|
||||
"id": "50fd2809-3aa3-4a90-988e-1facf6773553",
|
||||
"expectedControlType": "Stick",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "look",
|
||||
"type": "Value",
|
||||
"id": "c60e0974-d140-4597-a40e-9862193067e9",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
}
|
||||
],
|
||||
"bindings": [
|
||||
{
|
||||
"name": "",
|
||||
"id": "abb776f3-f329-4f7b-bbf8-b577d13be018",
|
||||
"path": "*/{PrimaryAction}",
|
||||
"interactions": "Tap,SlowTap",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "fire",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "e1b8c4dd-7b3a-4db6-a93a-0889b59b1afc",
|
||||
"path": "<Gamepad>/leftStick",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "Dpad",
|
||||
"id": "cefc16fc-557a-44b0-939f-2ad792876b07",
|
||||
"path": "Dpad",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "move",
|
||||
"isComposite": true,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "up",
|
||||
"id": "07244659-79df-461d-b329-defbe2fbc5f6",
|
||||
"path": "<Keyboard>/w",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "down",
|
||||
"id": "f0ec75cb-f02c-40d2-a33f-1fd6eab2ae0b",
|
||||
"path": "<Keyboard>/s",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "left",
|
||||
"id": "21fe6bfe-4721-4483-9f4a-a0031ade105c",
|
||||
"path": "<Keyboard>/a",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "right",
|
||||
"id": "2dd39746-c75c-4a11-838a-e59eacaf4e0b",
|
||||
"path": "<Keyboard>/d",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "c106d6e6-2780-47ff-b318-396171bd54cc",
|
||||
"path": "<Gamepad>/rightStick",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "look",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "578caa03-6827-4797-adfc-a59770c437fe",
|
||||
"path": "<Pointer>/delta",
|
||||
"interactions": "",
|
||||
"processors": "ScaleVector2(x=2,y=2)",
|
||||
"groups": "",
|
||||
"action": "look",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"controlSchemes": []
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dc782cd8f65d34f0a9c0e85380a5b684
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
|
||||
generateWrapperCode: 0
|
||||
wrapperCodePath:
|
||||
wrapperClassName:
|
||||
wrapperCodeNamespace:
|
||||
@@ -0,0 +1,291 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1309930466035750405
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1309930466035750406}
|
||||
- component: {fileID: 1309930466035750407}
|
||||
m_Layer: 0
|
||||
m_Name: MoveActionVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1309930466035750406
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930466035750405}
|
||||
serializedVersion: 2
|
||||
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: 1309930466712146553}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1309930466035750407
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930466035750405}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 939ce9f3839b54466af594f7854ed222, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Move
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 4
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 281.25
|
||||
y: 156.25
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ActionReference: {fileID: 0}
|
||||
m_ActionName: move
|
||||
m_ShowControlName: 1
|
||||
--- !u!1 &1309930466250040071
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1309930466250040120}
|
||||
- component: {fileID: 1309930466250040121}
|
||||
m_Layer: 0
|
||||
m_Name: FireActionVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1309930466250040120
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930466250040071}
|
||||
serializedVersion: 2
|
||||
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: 1309930466712146553}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1309930466250040121
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930466250040071}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 939ce9f3839b54466af594f7854ed222, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Fire
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 4
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 62.5
|
||||
y: 62.5
|
||||
width: 62.5
|
||||
height: 62.5
|
||||
m_Visualization: 1
|
||||
m_ActionReference: {fileID: 0}
|
||||
m_ActionName: fire
|
||||
m_ShowControlName: 1
|
||||
--- !u!1 &1309930466712146503
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1309930466712146553}
|
||||
- component: {fileID: 1309930466712146552}
|
||||
m_Layer: 0
|
||||
m_Name: SimpleControlsVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1309930466712146553
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930466712146503}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 955.3655, y: 464.9797, z: -160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1309930466250040120}
|
||||
- {fileID: 1309930467610566051}
|
||||
- {fileID: 1309930467894820737}
|
||||
- {fileID: 1309930466035750406}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1309930466712146552
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930466712146503}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 939ce9f3839b54466af594f7854ed222, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label:
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 3
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 300
|
||||
height: 30
|
||||
m_Visualization: 0
|
||||
m_ActionReference: {fileID: 0}
|
||||
m_ActionName:
|
||||
m_ShowControlName: 0
|
||||
--- !u!1 &1309930467610566049
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1309930467610566051}
|
||||
- component: {fileID: 1309930467610566050}
|
||||
m_Layer: 0
|
||||
m_Name: FireActionVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1309930467610566051
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930467610566049}
|
||||
serializedVersion: 2
|
||||
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: 1309930466712146553}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1309930467610566050
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930467610566049}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 939ce9f3839b54466af594f7854ed222, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label:
|
||||
m_HistorySamples: 500
|
||||
m_TimeWindow: 4
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 137.5
|
||||
y: 62.5
|
||||
width: 250
|
||||
height: 62.5
|
||||
m_Visualization: 2
|
||||
m_ActionReference: {fileID: 0}
|
||||
m_ActionName: fire
|
||||
m_ShowControlName: 0
|
||||
--- !u!1 &1309930467894820736
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1309930467894820737}
|
||||
- component: {fileID: 1309930467894820738}
|
||||
m_Layer: 0
|
||||
m_Name: LookActionVis
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1309930467894820737
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930467894820736}
|
||||
serializedVersion: 2
|
||||
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: 1309930466712146553}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1309930467894820738
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1309930467894820736}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 939ce9f3839b54466af594f7854ed222, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Label: Look
|
||||
m_HistorySamples: 1000
|
||||
m_TimeWindow: 4
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 62.5
|
||||
y: 156.25
|
||||
width: 187.5
|
||||
height: 187.5
|
||||
m_Visualization: 1
|
||||
m_ActionReference: {fileID: 0}
|
||||
m_ActionName: look
|
||||
m_ShowControlName: 1
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd3e0c715b35445fbb238f50ba9c9332
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,355 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: ac45b7ccdbae2aa4383585ed412d5c86,
|
||||
type: 2}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &524695744
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 524695745}
|
||||
- component: {fileID: 524695746}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &524695745
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 524695744}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 955.3655, y: 464.9797, z: -160.45508}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &524695746
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 524695744}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Actions: {fileID: -944628639613478452, guid: dc782cd8f65d34f0a9c0e85380a5b684,
|
||||
type: 3}
|
||||
m_NotificationBehavior: 0
|
||||
m_UIInputModule: {fileID: 0}
|
||||
m_DeviceLostEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_DeviceRegainedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ControlsChangedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ActionEvents: []
|
||||
m_NeverAutoSwitchControlSchemes: 0
|
||||
m_DefaultControlScheme:
|
||||
m_DefaultActionMap: 265c38f5-dd18-4d34-b198-aec58e1627ff
|
||||
m_SplitScreenIndex: -1
|
||||
m_Camera: {fileID: 0}
|
||||
--- !u!1 &676010914
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 676010918}
|
||||
- component: {fileID: 676010917}
|
||||
- component: {fileID: 676010916}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &676010916
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &676010917
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &676010918
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 676010914}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1309930466053861656
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1309930466712146503, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: SimpleControlsVis
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 955.3655
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 464.9797
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -160.45508
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1309930466712146553, guid: cd3e0c715b35445fbb238f50ba9c9332,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: cd3e0c715b35445fbb238f50ba9c9332, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 676010918}
|
||||
- {fileID: 524695745}
|
||||
- {fileID: 1309930466053861656}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14281ec1c6daa42bc97c543e027b5839
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "InputSystem.Samples.Visualizers",
|
||||
"references": [
|
||||
"GUID:75469ad4d38634e559750d17036d5f7c"
|
||||
],
|
||||
"optionalUnityReferences": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": true,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": []
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 728e24aed463f43edbdc096fef896432
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,701 @@
|
||||
using System;
|
||||
using UnityEngine.InputSystem.Utilities;
|
||||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using UnityEngine.InputSystem.LowLevel;
|
||||
|
||||
////REVIEW: for vector2 visualizers of sticks, it could be useful to also visualize deadzones and raw values
|
||||
|
||||
namespace UnityEngine.InputSystem.Samples
|
||||
{
|
||||
internal static class VisualizationHelpers
|
||||
{
|
||||
public enum Axis { X, Y, Z }
|
||||
|
||||
public abstract class Visualizer
|
||||
{
|
||||
public abstract void OnDraw(Rect rect);
|
||||
public abstract void AddSample(object value, double time);
|
||||
}
|
||||
|
||||
public abstract class ValueVisualizer<TValue> : Visualizer
|
||||
where TValue : struct
|
||||
{
|
||||
public RingBuffer<TValue> samples;
|
||||
public RingBuffer<GUIContent> samplesText;
|
||||
|
||||
protected ValueVisualizer(int numSamples = 10)
|
||||
{
|
||||
samples = new RingBuffer<TValue>(numSamples);
|
||||
samplesText = new RingBuffer<GUIContent>(numSamples);
|
||||
}
|
||||
|
||||
public override void AddSample(object value, double time)
|
||||
{
|
||||
var v = default(TValue);
|
||||
|
||||
if (value != null)
|
||||
{
|
||||
if (!(value is TValue val))
|
||||
throw new ArgumentException(
|
||||
$"Expecting value of type '{typeof(TValue).Name}' but value of type '{value?.GetType().Name}' instead",
|
||||
nameof(value));
|
||||
v = val;
|
||||
}
|
||||
|
||||
samples.Append(v);
|
||||
samplesText.Append(new GUIContent(v.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
// Visualizes integer and real type primitives.
|
||||
public class ScalarVisualizer<TValue> : ValueVisualizer<TValue>
|
||||
where TValue : struct
|
||||
{
|
||||
public TValue limitMin;
|
||||
public TValue limitMax;
|
||||
public TValue min;
|
||||
public TValue max;
|
||||
|
||||
public ScalarVisualizer(int numSamples = 10)
|
||||
: base(numSamples)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDraw(Rect rect)
|
||||
{
|
||||
// For now, only draw the current value.
|
||||
DrawRectangle(rect, new Color(1, 1, 1, 0.1f));
|
||||
if (samples.count == 0)
|
||||
return;
|
||||
var sample = samples[samples.count - 1];
|
||||
if (Compare(sample, default) == 0)
|
||||
return;
|
||||
if (Compare(limitMin, default) != 0)
|
||||
{
|
||||
// Two-way visualization with positive and negative side.
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
else
|
||||
{
|
||||
// One-way visualization with only positive side.
|
||||
var ratio = Divide(sample, limitMax);
|
||||
var fillRect = rect;
|
||||
fillRect.width = rect.width * ratio;
|
||||
DrawRectangle(fillRect, new Color(0, 1, 0, 0.75f));
|
||||
|
||||
var valuePos = new Vector2(fillRect.xMax, fillRect.y + fillRect.height / 2);
|
||||
DrawText(samplesText[samples.count - 1], valuePos, ValueTextStyle);
|
||||
}
|
||||
}
|
||||
|
||||
public override void AddSample(object value, double time)
|
||||
{
|
||||
base.AddSample(value, time);
|
||||
|
||||
if (value != null)
|
||||
{
|
||||
var val = (TValue)value;
|
||||
if (Compare(min, val) > 0)
|
||||
min = val;
|
||||
if (Compare(max, val) < 0)
|
||||
max = val;
|
||||
}
|
||||
}
|
||||
|
||||
private static unsafe int Compare(TValue left, TValue right)
|
||||
{
|
||||
var leftPtr = UnsafeUtility.AddressOf(ref left);
|
||||
var rightPtr = UnsafeUtility.AddressOf(ref right);
|
||||
if (typeof(TValue) == typeof(int))
|
||||
return ((int*)leftPtr)->CompareTo(*(int*)rightPtr);
|
||||
if (typeof(TValue) == typeof(float))
|
||||
return ((float*)leftPtr)->CompareTo(*(float*)rightPtr);
|
||||
throw new NotImplementedException("Scalar value type: " + typeof(TValue).Name);
|
||||
}
|
||||
|
||||
private static unsafe void Subtract(ref TValue left, TValue right)
|
||||
{
|
||||
var leftPtr = UnsafeUtility.AddressOf(ref left);
|
||||
var rightPtr = UnsafeUtility.AddressOf(ref right);
|
||||
|
||||
if (typeof(TValue) == typeof(int))
|
||||
*(int*)leftPtr = *(int*)leftPtr - *(int*)rightPtr;
|
||||
if (typeof(TValue) == typeof(float))
|
||||
*(float*)leftPtr = *(float*)leftPtr - *(float*)rightPtr;
|
||||
throw new NotImplementedException("Scalar value type: " + typeof(TValue).Name);
|
||||
}
|
||||
|
||||
private static unsafe float Divide(TValue left, TValue right)
|
||||
{
|
||||
var leftPtr = UnsafeUtility.AddressOf(ref left);
|
||||
var rightPtr = UnsafeUtility.AddressOf(ref right);
|
||||
|
||||
if (typeof(TValue) == typeof(int))
|
||||
return (float)*(int*)leftPtr / *(int*)rightPtr;
|
||||
if (typeof(TValue) == typeof(float))
|
||||
return *(float*)leftPtr / *(float*)rightPtr;
|
||||
throw new NotImplementedException("Scalar value type: " + typeof(TValue).Name);
|
||||
}
|
||||
}
|
||||
|
||||
// Visualizes .current device value
|
||||
public class CurrentDeviceVisualizer : Visualizer
|
||||
{
|
||||
private InputDevice m_CurrentDevice = null;
|
||||
|
||||
public override void OnDraw(Rect rect)
|
||||
{
|
||||
// For now, only draw the current value.
|
||||
DrawRectangle(rect, new Color(1, 1, 1, 0.1f));
|
||||
|
||||
var name = m_CurrentDevice != null ? m_CurrentDevice.name : "null";
|
||||
DrawText(name, new Vector2(rect.xMin + 4, (rect.yMin + rect.yMax) / 2.0f), ValueTextStyle);
|
||||
}
|
||||
|
||||
public override void AddSample(object value, double time)
|
||||
{
|
||||
var device = (InputDevice)value;
|
||||
if (device is Gamepad)
|
||||
m_CurrentDevice = Gamepad.current;
|
||||
else if (device is Mouse)
|
||||
m_CurrentDevice = Mouse.current;
|
||||
else if (device is Pen)
|
||||
m_CurrentDevice = Pen.current;
|
||||
else if (device is Pointer) // should be last, because it's a base class for Mouse and Pen
|
||||
m_CurrentDevice = Pointer.current;
|
||||
else
|
||||
throw new ArgumentException(
|
||||
$"Expected device type that implements .current, but got '{device.name}' (deviceId: {device.deviceId}) instead ");
|
||||
}
|
||||
}
|
||||
|
||||
////TODO: allow asymmetric center (i.e. center not being a midpoint of rectangle)
|
||||
////TODO: enforce proper proportion between X and Y; it's confusing that X and Y can have different units yet have the same length
|
||||
public class Vector2Visualizer : ValueVisualizer<Vector2>
|
||||
{
|
||||
// Our value space extends radially from the center, i.e. we have
|
||||
// 360 discrete directions. Sampling at that granularity doesn't work
|
||||
// super well in visualizations so we quantize to 3 degree increments.
|
||||
public Vector2[] maximums = new Vector2[360 / 3];
|
||||
public Vector2 limits = new Vector2(1, 1);
|
||||
|
||||
private GUIContent limitsXText;
|
||||
private GUIContent limitsYText;
|
||||
|
||||
public Vector2Visualizer(int numSamples = 10)
|
||||
: base(numSamples)
|
||||
{
|
||||
}
|
||||
|
||||
public override void AddSample(object value, double time)
|
||||
{
|
||||
base.AddSample(value, time);
|
||||
|
||||
if (value != null)
|
||||
{
|
||||
// Keep track of radial maximums.
|
||||
var vector = (Vector2)value;
|
||||
var angle = Vector2.SignedAngle(Vector2.right, vector);
|
||||
if (angle < 0)
|
||||
angle = 360 + angle;
|
||||
var angleInt = Mathf.FloorToInt(angle) / 3;
|
||||
if (vector.sqrMagnitude > maximums[angleInt].sqrMagnitude)
|
||||
maximums[angleInt] = vector;
|
||||
|
||||
// Extend limits if value is out of range.
|
||||
var limitX = Mathf.Max(Mathf.Abs(vector.x), limits.x);
|
||||
var limitY = Mathf.Max(Mathf.Abs(vector.y), limits.y);
|
||||
if (!Mathf.Approximately(limitX, limits.x))
|
||||
{
|
||||
limits.x = limitX;
|
||||
limitsXText = null;
|
||||
}
|
||||
if (!Mathf.Approximately(limitY, limits.y))
|
||||
{
|
||||
limits.y = limitY;
|
||||
limitsYText = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDraw(Rect rect)
|
||||
{
|
||||
DrawRectangle(rect, new Color(1, 1, 1, 0.1f));
|
||||
DrawAxis(Axis.X, rect, new Color(0, 1, 0, 0.75f));
|
||||
DrawAxis(Axis.Y, rect, new Color(0, 1, 0, 0.75f));
|
||||
|
||||
var sampleCount = samples.count;
|
||||
if (sampleCount == 0)
|
||||
return;
|
||||
|
||||
// If limits aren't (1,1), show the actual values.
|
||||
if (limits != new Vector2(1, 1))
|
||||
{
|
||||
if (limitsXText == null)
|
||||
limitsXText = new GUIContent(limits.x.ToString());
|
||||
if (limitsYText == null)
|
||||
limitsYText = new GUIContent(limits.y.ToString());
|
||||
|
||||
var limitsXSize = ValueTextStyle.CalcSize(limitsXText);
|
||||
var limitsXPos = new Vector2(rect.x - limitsXSize.x, rect.y - 5);
|
||||
var limitsYPos = new Vector2(rect.xMax, rect.yMax);
|
||||
|
||||
DrawText(limitsXText, limitsXPos, ValueTextStyle);
|
||||
DrawText(limitsYText, limitsYPos, ValueTextStyle);
|
||||
}
|
||||
|
||||
// Draw maximums.
|
||||
var numMaximums = 0;
|
||||
var firstMaximumPos = default(Vector2);
|
||||
var lastMaximumPos = default(Vector2);
|
||||
for (var i = 0; i < 360 / 3; ++i)
|
||||
{
|
||||
var value = maximums[i];
|
||||
if (value == default)
|
||||
continue;
|
||||
var valuePos = PixelPosForValue(value, rect);
|
||||
if (numMaximums > 0)
|
||||
DrawLine(lastMaximumPos, valuePos, new Color(1, 1, 1, 0.25f));
|
||||
else
|
||||
firstMaximumPos = valuePos;
|
||||
lastMaximumPos = valuePos;
|
||||
++numMaximums;
|
||||
}
|
||||
if (numMaximums > 1)
|
||||
DrawLine(lastMaximumPos, firstMaximumPos, new Color(1, 1, 1, 0.25f));
|
||||
|
||||
// Draw samples.
|
||||
var alphaStep = 1f / sampleCount;
|
||||
var alpha = 1f;
|
||||
for (var i = sampleCount - 1; i >= 0; --i) // Go newest to oldest.
|
||||
{
|
||||
var value = samples[i];
|
||||
var valueRect = RectForValue(value, rect);
|
||||
DrawRectangle(valueRect, new Color(1, 0, 0, alpha));
|
||||
alpha -= alphaStep;
|
||||
}
|
||||
|
||||
// Print value of most recent sample. Draw last so
|
||||
// we draw over the other stuff.
|
||||
var lastSample = samples[sampleCount - 1];
|
||||
var lastSamplePos = PixelPosForValue(lastSample, rect);
|
||||
lastSamplePos.x += 3;
|
||||
lastSamplePos.y += 3;
|
||||
DrawText(samplesText[sampleCount - 1], lastSamplePos, ValueTextStyle);
|
||||
}
|
||||
|
||||
private Rect RectForValue(Vector2 value, Rect rect)
|
||||
{
|
||||
var pos = PixelPosForValue(value, rect);
|
||||
return new Rect(pos.x - 1, pos.y - 1, 2, 2);
|
||||
}
|
||||
|
||||
private Vector2 PixelPosForValue(Vector2 value, Rect rect)
|
||||
{
|
||||
var center = rect.center;
|
||||
var x = Mathf.Abs(value.x) / limits.x * Mathf.Sign(value.x);
|
||||
var y = Mathf.Abs(value.y) / limits.y * Mathf.Sign(value.y) * -1; // GUI Y is upside down.
|
||||
var xInPixels = x * rect.width / 2;
|
||||
var yInPixels = y * rect.height / 2;
|
||||
return new Vector2(center.x + xInPixels,
|
||||
center.y + yInPixels);
|
||||
}
|
||||
}
|
||||
|
||||
// Y axis is time, X axis can be multiple visualizations.
|
||||
public class TimelineVisualizer : Visualizer
|
||||
{
|
||||
public bool showLegend { get; set; }
|
||||
public bool showLimits { get; set; }
|
||||
public TimeUnit timeUnit { get; set; } = TimeUnit.Seconds;
|
||||
public GUIContent valueUnit { get; set; }
|
||||
////REVIEW: should this be per timeline?
|
||||
public int timelineCount => m_Timelines != null ? m_Timelines.Length : 0;
|
||||
public int historyDepth { get; set; } = 100;
|
||||
|
||||
public Vector2 limitsY
|
||||
{
|
||||
get => m_LimitsY;
|
||||
set
|
||||
{
|
||||
m_LimitsY = value;
|
||||
m_LimitsYMin = null;
|
||||
m_LimitsYMax = null;
|
||||
}
|
||||
}
|
||||
|
||||
public TimelineVisualizer(float totalTimeUnitsShown = 4)
|
||||
{
|
||||
m_TotalTimeUnitsShown = totalTimeUnitsShown;
|
||||
}
|
||||
|
||||
public override void OnDraw(Rect rect)
|
||||
{
|
||||
var endTime = Time.realtimeSinceStartup;
|
||||
var startTime = endTime - m_TotalTimeUnitsShown;
|
||||
var endFrame = InputState.updateCount;
|
||||
var startFrame = endFrame - (int)m_TotalTimeUnitsShown;
|
||||
|
||||
for (var i = 0; i < timelineCount; ++i)
|
||||
{
|
||||
var timeline = m_Timelines[i];
|
||||
var sampleCount = timeUnit == TimeUnit.Frames
|
||||
? timeline.frameSamples.count
|
||||
: timeline.timeSamples.count;
|
||||
|
||||
// Set up clip rect so that we can do stuff like render lines to samples
|
||||
// falling outside the render rectangle and have them get clipped.
|
||||
GUI.BeginGroup(rect);
|
||||
var plotType = timeline.plotType;
|
||||
var lastPos = default(Vector2);
|
||||
var timeUnitsPerPixel = rect.width / m_TotalTimeUnitsShown;
|
||||
var color = m_Timelines[i].color;
|
||||
for (var n = sampleCount - 1; n >= 0; --n)
|
||||
{
|
||||
var sample = timeUnit == TimeUnit.Frames
|
||||
? timeline.frameSamples[n].value
|
||||
: timeline.timeSamples[n].value;
|
||||
|
||||
////TODO: respect limitsY
|
||||
|
||||
float y;
|
||||
if (sample.isEmpty)
|
||||
y = 0.5f;
|
||||
else
|
||||
y = sample.ToSingle();
|
||||
|
||||
y /= limitsY.y;
|
||||
|
||||
var deltaTime = timeUnit == TimeUnit.Frames
|
||||
? timeline.frameSamples[n].frame - startFrame
|
||||
: timeline.timeSamples[n].time - startTime;
|
||||
var pos = new Vector2(deltaTime * timeUnitsPerPixel, rect.height - y * rect.height);
|
||||
|
||||
if (plotType == PlotType.LineGraph)
|
||||
{
|
||||
if (n != sampleCount - 1)
|
||||
{
|
||||
DrawLine(lastPos, pos, color, 2);
|
||||
if (pos.x < 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (plotType == PlotType.BarChart)
|
||||
{
|
||||
////TODO: make rectangles have a progressively stronger hue or saturation
|
||||
var barRect = new Rect(pos.x, pos.y, timeUnitsPerPixel, y * limitsY.y * rect.height);
|
||||
DrawRectangle(barRect, color);
|
||||
}
|
||||
|
||||
lastPos = pos;
|
||||
}
|
||||
GUI.EndGroup();
|
||||
}
|
||||
|
||||
if (showLegend && timelineCount > 0)
|
||||
{
|
||||
var legendRect = rect;
|
||||
legendRect.x += rect.width + 2;
|
||||
legendRect.width = 400;
|
||||
legendRect.height = ValueTextStyle.CalcHeight(m_Timelines[0].name, 400);
|
||||
for (var i = 0; i < m_Timelines.Length; ++i)
|
||||
{
|
||||
var colorTagRect = legendRect;
|
||||
colorTagRect.width = 5;
|
||||
var labelRect = legendRect;
|
||||
labelRect.x += 8;
|
||||
labelRect.width -= 8;
|
||||
|
||||
DrawRectangle(colorTagRect, m_Timelines[i].color);
|
||||
DrawText(m_Timelines[i].name, labelRect.position, ValueTextStyle);
|
||||
|
||||
legendRect.y += labelRect.height + 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (showLimits)
|
||||
{
|
||||
if (m_LimitsYMax == null)
|
||||
m_LimitsYMax = new GUIContent(m_LimitsY.y.ToString());
|
||||
if (m_LimitsYMin == null)
|
||||
m_LimitsYMin = new GUIContent(m_LimitsY.x.ToString());
|
||||
|
||||
DrawText(m_LimitsYMax, new Vector2(rect.x + rect.width, rect.y), ValueTextStyle);
|
||||
DrawText(m_LimitsYMin, new Vector2(rect.x + rect.width, rect.y + rect.height), ValueTextStyle);
|
||||
}
|
||||
}
|
||||
|
||||
public override void AddSample(object value, double time)
|
||||
{
|
||||
if (timelineCount == 0)
|
||||
throw new InvalidOperationException("Must have set up a timeline first");
|
||||
AddSample(0, PrimitiveValue.FromObject(value), (float)time);
|
||||
}
|
||||
|
||||
public int AddTimeline(string name, Color color, PlotType plotType = default)
|
||||
{
|
||||
var timeline = new Timeline
|
||||
{
|
||||
name = new GUIContent(name),
|
||||
color = color,
|
||||
plotType = plotType,
|
||||
};
|
||||
if (timeUnit == TimeUnit.Frames)
|
||||
timeline.frameSamples = new RingBuffer<FrameSample>(historyDepth);
|
||||
else
|
||||
timeline.timeSamples = new RingBuffer<TimeSample>(historyDepth);
|
||||
|
||||
var index = timelineCount;
|
||||
Array.Resize(ref m_Timelines, timelineCount + 1);
|
||||
m_Timelines[index] = timeline;
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
public int GetTimeline(string name)
|
||||
{
|
||||
for (var i = 0; i < timelineCount; ++i)
|
||||
if (string.Compare(m_Timelines[i].name.text, name, StringComparison.InvariantCultureIgnoreCase) == 0)
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Add a time-based sample.
|
||||
public void AddSample(int timelineIndex, PrimitiveValue value, float time)
|
||||
{
|
||||
m_Timelines[timelineIndex].timeSamples.Append(new TimeSample
|
||||
{
|
||||
value = value,
|
||||
time = time
|
||||
});
|
||||
}
|
||||
|
||||
// Add a frame-based sample.
|
||||
public ref PrimitiveValue GetOrCreateSample(int timelineIndex, int frame)
|
||||
{
|
||||
ref var timeline = ref m_Timelines[timelineIndex];
|
||||
ref var samples = ref timeline.frameSamples;
|
||||
var count = samples.count;
|
||||
if (count > 0)
|
||||
{
|
||||
if (samples[count - 1].frame == frame)
|
||||
return ref samples[count - 1].value;
|
||||
|
||||
Debug.Assert(samples[count - 1].frame < frame, "Frame numbers must be ascending");
|
||||
}
|
||||
|
||||
return ref samples.Append(new FrameSample {frame = frame}).value;
|
||||
}
|
||||
|
||||
private float m_TotalTimeUnitsShown;
|
||||
private Vector2 m_LimitsY = new Vector2(-1, 1);
|
||||
private GUIContent m_LimitsYMin;
|
||||
private GUIContent m_LimitsYMax;
|
||||
private Timeline[] m_Timelines;
|
||||
|
||||
private struct TimeSample
|
||||
{
|
||||
public PrimitiveValue value;
|
||||
public float time;
|
||||
}
|
||||
|
||||
private struct FrameSample
|
||||
{
|
||||
public PrimitiveValue value;
|
||||
public int frame;
|
||||
}
|
||||
|
||||
private struct Timeline
|
||||
{
|
||||
public GUIContent name;
|
||||
public Color color;
|
||||
public RingBuffer<TimeSample> timeSamples;
|
||||
public RingBuffer<FrameSample> frameSamples;
|
||||
public PrimitiveValue minValue;
|
||||
public PrimitiveValue maxValue;
|
||||
public PlotType plotType;
|
||||
}
|
||||
|
||||
public enum PlotType
|
||||
{
|
||||
LineGraph,
|
||||
BarChart,
|
||||
}
|
||||
|
||||
public enum TimeUnit
|
||||
{
|
||||
Seconds,
|
||||
Frames,
|
||||
}
|
||||
}
|
||||
|
||||
public static void DrawAxis(Axis axis, Rect rect, Color color = default, float width = 1)
|
||||
{
|
||||
Vector2 start, end, tickOffset;
|
||||
switch (axis)
|
||||
{
|
||||
case Axis.X:
|
||||
start = new Vector2(rect.x, rect.y + rect.height / 2);
|
||||
end = new Vector2(start.x + rect.width, rect.y + rect.height / 2);
|
||||
tickOffset = new Vector2(0, 3);
|
||||
break;
|
||||
|
||||
case Axis.Y:
|
||||
start = new Vector2(rect.x + rect.width / 2, rect.y);
|
||||
end = new Vector2(start.x, rect.y + rect.height);
|
||||
tickOffset = new Vector2(3, 0);
|
||||
break;
|
||||
|
||||
case Axis.Z:
|
||||
// From bottom left corner to upper right corner.
|
||||
start = new Vector2(rect.x, rect.yMax);
|
||||
end = new Vector2(rect.xMax, rect.y);
|
||||
tickOffset = new Vector2(1.5f, 1.5f);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
////TODO: label limits
|
||||
|
||||
DrawLine(start, end, color, width);
|
||||
DrawLine(start - tickOffset, start + tickOffset, color, width);
|
||||
DrawLine(end - tickOffset, end + tickOffset, color, width);
|
||||
}
|
||||
|
||||
public static void DrawRectangle(Rect rect, Color color)
|
||||
{
|
||||
var savedColor = GUI.color;
|
||||
GUI.color = color;
|
||||
GUI.DrawTexture(rect, OnePixTex);
|
||||
GUI.color = savedColor;
|
||||
}
|
||||
|
||||
public static void DrawText(string text, Vector2 pos, GUIStyle style)
|
||||
{
|
||||
var content = new GUIContent(text);
|
||||
DrawText(content, pos, style);
|
||||
}
|
||||
|
||||
public static void DrawText(GUIContent text, Vector2 pos, GUIStyle style)
|
||||
{
|
||||
var content = new GUIContent(text);
|
||||
var size = style.CalcSize(content);
|
||||
var rect = new Rect(pos.x, pos.y, size.x, size.y);
|
||||
style.Draw(rect, content, false, false, false, false);
|
||||
}
|
||||
|
||||
// Adapted from http://wiki.unity3d.com/index.php?title=DrawLine
|
||||
public static void DrawLine(Vector2 pointA, Vector2 pointB, Color color = default, float width = 1)
|
||||
{
|
||||
// Save the current GUI matrix, since we're going to make changes to it.
|
||||
var matrix = GUI.matrix;
|
||||
|
||||
// Store current GUI color, so we can switch it back later,
|
||||
// and set the GUI color to the color parameter
|
||||
var savedColor = GUI.color;
|
||||
GUI.color = color;
|
||||
|
||||
// Determine the angle of the line.
|
||||
var angle = Vector3.Angle(pointB - pointA, Vector2.right);
|
||||
|
||||
// Vector3.Angle always returns a positive number.
|
||||
// If pointB is above pointA, then angle needs to be negative.
|
||||
if (pointA.y > pointB.y)
|
||||
angle = -angle;
|
||||
|
||||
// Use ScaleAroundPivot to adjust the size of the line.
|
||||
// We could do this when we draw the texture, but by scaling it here we can use
|
||||
// non-integer values for the width and length (such as sub 1 pixel widths).
|
||||
// Note that the pivot point is at +.5 from pointA.y, this is so that the width of the line
|
||||
// is centered on the origin at pointA.
|
||||
GUIUtility.ScaleAroundPivot(new Vector2((pointB - pointA).magnitude, width), new Vector2(pointA.x, pointA.y + 0.5f));
|
||||
|
||||
// Set the rotation for the line.
|
||||
// The angle was calculated with pointA as the origin.
|
||||
GUIUtility.RotateAroundPivot(angle, pointA);
|
||||
|
||||
// Finally, draw the actual line.
|
||||
// We're really only drawing a 1x1 texture from pointA.
|
||||
// The matrix operations done with ScaleAroundPivot and RotateAroundPivot will make this
|
||||
// render with the proper width, length, and angle.
|
||||
GUI.DrawTexture(new Rect(pointA.x, pointA.y, 1, 1), OnePixTex);
|
||||
|
||||
// We're done. Restore the GUI matrix and GUI color to whatever they were before.
|
||||
GUI.matrix = matrix;
|
||||
GUI.color = savedColor;
|
||||
}
|
||||
|
||||
private static Texture2D s_OnePixTex;
|
||||
private static GUIStyle s_ValueTextStyle;
|
||||
|
||||
internal static GUIStyle ValueTextStyle
|
||||
{
|
||||
get
|
||||
{
|
||||
if (s_ValueTextStyle == null)
|
||||
{
|
||||
s_ValueTextStyle = new GUIStyle();
|
||||
s_ValueTextStyle.fontSize -= 2;
|
||||
s_ValueTextStyle.normal.textColor = Color.white;
|
||||
}
|
||||
return s_ValueTextStyle;
|
||||
}
|
||||
}
|
||||
|
||||
internal static Texture2D OnePixTex
|
||||
{
|
||||
get
|
||||
{
|
||||
if (s_OnePixTex == null)
|
||||
s_OnePixTex = new Texture2D(1, 1);
|
||||
return s_OnePixTex;
|
||||
}
|
||||
}
|
||||
|
||||
public struct RingBuffer<TValue>
|
||||
{
|
||||
public TValue[] array;
|
||||
public int head;
|
||||
public int count;
|
||||
|
||||
public RingBuffer(int size)
|
||||
{
|
||||
array = new TValue[size];
|
||||
head = 0;
|
||||
count = 0;
|
||||
}
|
||||
|
||||
public ref TValue Append(TValue value)
|
||||
{
|
||||
int index;
|
||||
var bufferSize = array.Length;
|
||||
if (count < bufferSize)
|
||||
{
|
||||
Debug.Assert(head == 0, "Head can't have moved if buffer isn't full yet");
|
||||
index = count;
|
||||
++count;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Buffer is full. Bump head.
|
||||
index = (head + count) % bufferSize;
|
||||
++head;
|
||||
}
|
||||
array[index] = value;
|
||||
return ref array[index];
|
||||
}
|
||||
|
||||
public ref TValue this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (index < 0 || index >= count)
|
||||
throw new ArgumentOutOfRangeException(nameof(index));
|
||||
return ref array[(head + index) % array.Length];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad5cfc4797aad4aa1b10dc648646ba5e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user