refactor(20038-05): use two rect transform to decide TUIO mapping

master
chwan1 5 years ago
parent 1dc3cd53f0
commit 55c07352f3
  1. 455
      Unity-20038-05-BallPool-8M/Assets/Frozen/Frozen.unity
  2. 31
      Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs
  3. 11
      Unity-20038-05-BallPool-8M/Assets/Frozen/Script/TuioRoiFilter.cs.meta
  4. BIN
      Unity-20038-05-BallPool-8M/Assets/Frozen/border.png
  5. 104
      Unity-20038-05-BallPool-8M/Assets/Frozen/border.png.meta

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

@ -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);
}
}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

@ -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:
Loading…
Cancel
Save