diff --git a/Unity-20038-05-BallPool-8M/Assets/Frozen/Frozen.unity b/Unity-20038-05-BallPool-8M/Assets/Frozen/Frozen.unity index 12dee25..ca8742b 100644 --- a/Unity-20038-05-BallPool-8M/Assets/Frozen/Frozen.unity +++ b/Unity-20038-05-BallPool-8M/Assets/Frozen/Frozen.unity @@ -889,169 +889,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 66098174} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!43 &76194398 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: 'Space Ground Mesh: (9.6x6x3.6)' - serializedVersion: 10 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 24 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 16 - localAABB: - m_Center: {x: 0, y: 1.8, z: 0} - m_Extent: {x: 4.8, y: 1.8, z: 3} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 0 - m_KeepVertices: 1 - m_KeepIndices: 1 - m_IndexFormat: 0 - m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 16 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 512 - _typelessdata: 9a9999c000000000000040c0000000000000803f00000000e3388e3e000000009a9999c00000000000004040000000000000803f00000000e3388e3e0000203f9a99994000000000000040c0000000000000803f000000008ee3383f000000009a9999400000000000004040000000000000803f000000008ee3383f0000203f9a9999c000000000000040400000000000000000000080bfe3388e3e0000203f9a9999c066666640000040400000000000000000000080bfe3388e3effff7f3f9a99994000000000000040400000000000000000000080bf8ee3383f0000203f9a99994066666640000040400000000000000000000080bf8ee3383fffff7f3f9a9999c000000000000040c00000803f0000000000000000000000000000203f9a9999c066666640000040c00000803f000000000000000000000000ffff7f3f9a9999c000000000000040400000803f0000000000000000e3388e3e0000203f9a9999c066666640000040400000803f0000000000000000e3388e3effff7f3f9a9999400000000000004040000080bf00000000000000008ee3383f0000203f9a9999406666664000004040000080bf00000000000000008ee3383fffff7f3f9a99994000000000000040c0000080bf00000000000000000000803f0000203f9a99994066666640000040c0000080bf00000000000000000000803fffff7f3f - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 1.8, z: 0} - m_Extent: {x: 4.8, y: 1.8, z: 3} - m_MeshUsageFlags: 0 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - m_MeshMetrics[0]: 1 - m_MeshMetrics[1]: 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - offset: 0 - size: 0 - path: --- !u!1 &96822205 GameObject: m_ObjectHideFlags: 0 @@ -2101,37 +1938,13 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 276089015} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &302071752 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 1641997025252556, guid: 1f68bf7cec2600e49a46d2f0554453c8, - type: 3} - m_PrefabInstance: {fileID: 2724579458866948346} - m_PrefabAsset: {fileID: 0} ---- !u!114 &302071753 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 302071752} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c0cf9367f1409d14eacc224f20a139d4, type: 3} - m_Name: - m_EditorClassIdentifier: - customRoi: - serializedVersion: 2 - x: 640 - y: 530 - width: 432 - height: 270 --- !u!114 &302071758 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 114540009425154000, guid: 1f68bf7cec2600e49a46d2f0554453c8, type: 3} m_PrefabInstance: {fileID: 2724579458866948346} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 302071752} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: efb261ab42149004580a10ea28a14a0f, type: 3} @@ -4739,6 +4552,169 @@ MonoBehaviour: m_CallState: 2 mode: 0 info: +--- !u!43 &700336209 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: 'Space Ground Mesh: (9.6x6x3.6)' + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 24 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 16 + localAABB: + m_Center: {x: 0, y: 1.8, z: 0} + m_Extent: {x: 4.8, y: 1.8, z: 3} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 0 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 16 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 512 + _typelessdata: 9a9999c000000000000040c0000000000000803f00000000e3388e3e000000009a9999c00000000000004040000000000000803f00000000e3388e3e0000203f9a99994000000000000040c0000000000000803f000000008ee3383f000000009a9999400000000000004040000000000000803f000000008ee3383f0000203f9a9999c000000000000040400000000000000000000080bfe3388e3e0000203f9a9999c066666640000040400000000000000000000080bfe3388e3effff7f3f9a99994000000000000040400000000000000000000080bf8ee3383f0000203f9a99994066666640000040400000000000000000000080bf8ee3383fffff7f3f9a9999c000000000000040c00000803f0000000000000000000000000000203f9a9999c066666640000040c00000803f000000000000000000000000ffff7f3f9a9999c000000000000040400000803f0000000000000000e3388e3e0000203f9a9999c066666640000040400000803f0000000000000000e3388e3effff7f3f9a9999400000000000004040000080bf00000000000000008ee3383f0000203f9a9999406666664000004040000080bf00000000000000008ee3383fffff7f3f9a99994000000000000040c0000080bf00000000000000000000803f0000203f9a99994066666640000040c0000080bf00000000000000000000803fffff7f3f + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 1.8, z: 0} + m_Extent: {x: 4.8, y: 1.8, z: 3} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + offset: 0 + size: 0 + path: --- !u!1 &728697566 GameObject: m_ObjectHideFlags: 0 @@ -7735,7 +7711,8 @@ RectTransform: 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_Children: [] + m_Children: + - {fileID: 1607570398} m_Father: {fileID: 1765914297} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -9034,7 +9011,7 @@ MeshFilter: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1379541361} - m_Mesh: {fileID: 76194398} + m_Mesh: {fileID: 700336209} --- !u!114 &1379541365 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9060,6 +9037,7 @@ GameObject: - component: {fileID: 1390635888} - component: {fileID: 1390635889} - component: {fileID: 1390635890} + - component: {fileID: 1390635891} m_Layer: 0 m_Name: Main m_TagString: Untagged @@ -9111,6 +9089,20 @@ MonoBehaviour: fullScreenMode: 3 targetFrameRate: 60 resolution: {x: 1630, y: 800} +--- !u!114 &1390635891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390635887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6913787870c8f9041990402ae0744f64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_targetRectTransform: {fileID: 1607570398} + m_fullRectTransform: {fileID: 1765914297} --- !u!1 &1418579081 GameObject: m_ObjectHideFlags: 0 @@ -10155,6 +10147,80 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1451259936caa6f4f96d457b79763f65, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1607570397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1607570398} + - component: {fileID: 1607570400} + - component: {fileID: 1607570399} + m_Layer: 5 + m_Name: TUIO ROI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1607570398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607570397} + 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_Children: [] + m_Father: {fileID: 1227078085} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 270, y: 530} + m_SizeDelta: {x: 432, y: 270} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1607570399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607570397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 0 + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2f8857894263d92478a62f6c854bcc84, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1607570400 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607570397} + m_CullTransparentMesh: 0 --- !u!1 &1653619180 GameObject: m_ObjectHideFlags: 0 @@ -14738,13 +14804,18 @@ PrefabInstance: - target: {fileID: 114540009425154000, guid: 1f68bf7cec2600e49a46d2f0554453c8, type: 3} propertyPath: blobFilters.Array.size - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 114540009425154000, guid: 1f68bf7cec2600e49a46d2f0554453c8, type: 3} propertyPath: blobFilters.Array.data[1] value: - objectReference: {fileID: 302071753} + objectReference: {fileID: 1390635891} + - target: {fileID: 114540009425154000, guid: 1f68bf7cec2600e49a46d2f0554453c8, + type: 3} + propertyPath: blobFilters.Array.data[0] + value: + objectReference: {fileID: 1390635891} - target: {fileID: 114872970294644716, guid: 1f68bf7cec2600e49a46d2f0554453c8, type: 3} propertyPath: customRoi.width diff --git a/Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs b/Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs new file mode 100644 index 0000000..f780eda --- /dev/null +++ b/Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs @@ -0,0 +1,31 @@ +using TUIO; +using UnityEngine; + +public class TuioRoiFilter : TuioFilter +{ + [Header("Event Source")] + public RectTransform m_targetRectTransform; + public RectTransform m_fullRectTransform; + + private Rect roi = Rect.zero; + + protected void FixedUpdate() + { + if (m_targetRectTransform != null || m_fullRectTransform != null) + { + var corners = new Vector3[4]; + m_targetRectTransform.GetWorldCorners(corners); + var p0 = m_fullRectTransform.InverseTransformPoint(corners[0]); + var p1 = m_fullRectTransform.InverseTransformPoint(corners[2]); + //check working if pivot is not (0.5, 0.5) + roi = new Rect(p0.x + m_fullRectTransform.rect.width / 2, p0.y + m_fullRectTransform.rect.height / 2, p1.x - p0.x, p1.y - p0.y); + } + } + + public override void Filter(TuioContainer tcur) + { + if (isActiveAndEnabled == false) return; + if (roi != Rect.zero) return; + tcur.update(tcur.X * roi.width + roi.x, (1.0f - tcur.Y) * roi.height + roi.y); + } +} diff --git a/Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs.meta b/Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs.meta new file mode 100644 index 0000000..7dd0a07 --- /dev/null +++ b/Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6913787870c8f9041990402ae0744f64 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity-20038-05-BallPool-8M/Assets/Frozen/border.png b/Unity-20038-05-BallPool-8M/Assets/Frozen/border.png new file mode 100644 index 0000000..0e5f8bd Binary files /dev/null and b/Unity-20038-05-BallPool-8M/Assets/Frozen/border.png differ diff --git a/Unity-20038-05-BallPool-8M/Assets/Frozen/border.png.meta b/Unity-20038-05-BallPool-8M/Assets/Frozen/border.png.meta new file mode 100644 index 0000000..58de6a8 --- /dev/null +++ b/Unity-20038-05-BallPool-8M/Assets/Frozen/border.png.meta @@ -0,0 +1,104 @@ +fileFormatVersion: 2 +guid: 2f8857894263d92478a62f6c854bcc84 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 5, y: 5, z: 5, w: 5} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: