BallPool refactor in progress

master
chwan1 6 years ago
parent 8a073cdded
commit 6a363aeba2
  1. 245
      Unity-19050-05-BallPool/Assets/Frozen/Character.prefab
  2. 5
      Unity-19050-05-BallPool/Assets/Frozen/Character.prefab.meta
  3. 448
      Unity-19050-05-BallPool/Assets/Frozen/Frozen.unity
  4. 10
      Unity-19050-05-BallPool/Assets/Frozen/Frozen_Profiles/Composite Camera Profile.asset
  5. 1314
      Unity-19050-05-BallPool/Assets/Frozen/Frozen_Profiles/Scene Camera Profile.asset
  6. 99
      Unity-19050-05-BallPool/Assets/Frozen/Material/Point.mat
  7. 10
      Unity-19050-05-BallPool/Assets/Frozen/Material/Point.mat.meta
  8. 27
      Unity-19050-05-BallPool/Assets/Frozen/Script/CharacterBehaviour.cs
  9. 145
      Unity-19050-05-BallPool/Assets/Frozen/Script/FrozenScreenToWorldSpace.cs
  10. 29
      Unity-19050-05-BallPool/Assets/Frozen/Script/SceneController.cs
  11. 221
      Unity-19050-05-BallPool/Assets/Frozen/Shader/DFVolumeParticleUpdate.compute
  12. 10
      Unity-19050-05-BallPool/Assets/Frozen/Shader/DFVolumeParticleUpdate.compute.meta
  13. 99
      Unity-19050-05-BallPool/Assets/Frozen/Shader/FrozenParticleUnlitPoint.shader
  14. 10
      Unity-19050-05-BallPool/Assets/Frozen/Shader/FrozenParticleUnlitPoint.shader.meta
  15. 39
      Unity-19050-05-BallPool/Assets/Frozen/Shader/FrozenVertexBufferUpdate.compute
  16. 192
      Unity-19050-05-BallPool/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute
  17. 10
      Unity-19050-05-BallPool/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute.meta

@ -0,0 +1,245 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &54049355101563969
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 54049355101563998}
- component: {fileID: 54049355101563996}
- component: {fileID: 54049355101563999}
m_Layer: 8
m_Name: trigger
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &54049355101563998
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355101563969}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.01, z: 0}
m_LocalScale: {x: 2.3, y: 2.3, z: 2.3}
m_Children: []
m_Father: {fileID: 54049355739133183}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &54049355101563996
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355101563969}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &54049355101563999
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355101563969}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 2969b78c14f1c6f4e941656f8f9cb902, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &54049355689360134
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 54049355689360135}
- component: {fileID: 54049355689360133}
- component: {fileID: 54049355689360132}
m_Layer: 8
m_Name: standby
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &54049355689360135
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355689360134}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.01, z: 0}
m_LocalScale: {x: 2.3, y: 2.3, z: 2.3}
m_Children: []
m_Father: {fileID: 54049355739133183}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &54049355689360133
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355689360134}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &54049355689360132
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355689360134}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 1cdc8e8858ddf8a48ae2acc576bc1ead, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &54049355739133182
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 54049355739133183}
- component: {fileID: 54049355739133181}
- component: {fileID: 54049355739133177}
m_Layer: 8
m_Name: Anna_day
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &54049355739133183
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355739133182}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -2.9, y: 0, z: 2.49}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 54049355101563998}
- {fileID: 54049355689360135}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &54049355739133181
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355739133182}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
videoStopTime: 10
disappearTime: 1
area: 2
appearAreas:
specificPositions:
- {fileID: 54049355739133177}
roaming: 0
fakeButton: {fileID: 0}
isStandbyLoop: 0
standbyClip: {fileID: 11400000, guid: 6d7b66e288bf3924fbd7a716ae3ac255, type: 2}
triggerClips:
- {fileID: 11400000, guid: 2845fcd21d061464f8f97219a167ba7a, type: 2}
triggerFrame: 45
onTrigger:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_MethodName: PlayOneShot
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
mode: 0
info:
--- !u!114 &54049355739133177
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 54049355739133182}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 86694b20cef756146b118abf35314f9b, type: 3}
m_Name:
m_EditorClassIdentifier:
area: 2

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: 12722f65bf7d89d448b703b34b9e4dcb
ComputeShaderImporter:
guid: 39491758eb9e12c4eabfd1587027ca77
PrefabImporter:
externalObjects: {}
currentAPIMask: 4
userData:
assetBundleName:
assetBundleVariant:

@ -157,7 +157,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 0.5
disappearTime: 0.5
area: 0
@ -924,6 +925,7 @@ Transform:
m_Children:
- {fileID: 1906326617}
- {fileID: 1247992794}
- {fileID: 1973785472}
- {fileID: 411383573}
- {fileID: 1933714481}
- {fileID: 1690794385}
@ -933,7 +935,6 @@ Transform:
- {fileID: 430669115}
- {fileID: 1215840946}
- {fileID: 1878556046}
- {fileID: 1973785472}
- {fileID: 1216863872}
- {fileID: 1984882816}
- {fileID: 1225287932}
@ -1054,7 +1055,7 @@ Transform:
- {fileID: 663412326}
- {fileID: 1722222727}
m_Father: {fileID: 199010598}
m_RootOrder: 7
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &234989375
MonoBehaviour:
@ -1068,7 +1069,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 1.5
disappearTime: 0.1
area: 0
@ -1142,7 +1144,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 0.5
disappearTime: 0.5
area: 0
@ -1359,7 +1362,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 0.5
disappearTime: 0.5
area: 0
@ -1869,7 +1873,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 199010598}
m_RootOrder: 2
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &423869583
GameObject:
@ -1979,7 +1983,7 @@ Transform:
- {fileID: 603456585}
- {fileID: 64793644}
m_Father: {fileID: 199010598}
m_RootOrder: 8
m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &430669116
MonoBehaviour:
@ -1993,7 +1997,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 1.5
disappearTime: 0.1
area: 0
@ -2219,7 +2224,7 @@ Transform:
- {fileID: 1276519162}
- {fileID: 1866235076}
m_Father: {fileID: 199010598}
m_RootOrder: 5
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &459917737
MonoBehaviour:
@ -2233,7 +2238,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 1.5
disappearTime: 0.1
area: 0
@ -2716,7 +2722,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 10
disappearTime: 1
area: 2
@ -3450,7 +3457,7 @@ Transform:
- {fileID: 1164756622}
- {fileID: 1719420170}
m_Father: {fileID: 199010598}
m_RootOrder: 6
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &947900028
MonoBehaviour:
@ -3464,7 +3471,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 1.5
disappearTime: 0.1
area: 0
@ -3674,7 +3682,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 0.5
disappearTime: 0.5
area: 0
@ -3703,6 +3712,166 @@ MonoBehaviour:
m_CallState: 2
mode: 0
info:
--- !u!43 &1011445328
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 'Space Ground Mesh: (8x5x3)'
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 24
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 16
localAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 0
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00
m_VertexData:
serializedVersion: 2
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: 000080c000000000000020c0000000000000803f00000000e4388e3e00000000000080c00000000000002040000000000000803f00000000e4388e3e0000203f0000804000000000000020c0000000000000803f000000008ee3383f00000000000080400000000000002040000000000000803f000000008ee3383f0000203f000080c000000000000020400000000000000000000080bfe4388e3e0000203f000080c000004040000020400000000000000000000080bfe4388e3e0000803f0000804000000000000020400000000000000000000080bf8ee3383f0000203f0000804000004040000020400000000000000000000080bf8ee3383f0000803f000080c000000000000020c00000803f0000000000000000000000000000203f000080c000004040000020c00000803f0000000000000000000000000000803f000080c000000000000020400000803f0000000000000000e4388e3e0000203f000080c000004040000020400000803f0000000000000000e4388e3e0000803f000080400000000000002040000080bf00000000000000008ee3383f0000203f000080400000404000002040000080bf00000000000000008ee3383f0000803f0000804000000000000020c0000080bf00000000000000000000803f0000203f0000804000004040000020c0000080bf00000000000000000000803f0000803f
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.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &1061158671
GameObject:
m_ObjectHideFlags: 0
@ -3985,7 +4154,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 10
disappearTime: 1
area: 2
@ -4164,7 +4334,7 @@ PrefabInstance:
- target: {fileID: 114802992808559142, guid: 65310f6d57df29045b6fa71ac0ceb175,
type: 3}
propertyPath: resolution.x
value: 1260
value: 1830
objectReference: {fileID: 0}
- target: {fileID: 114802992808559142, guid: 65310f6d57df29045b6fa71ac0ceb175,
type: 3}
@ -4310,7 +4480,7 @@ Transform:
- {fileID: 1653619181}
- {fileID: 1216801759}
m_Father: {fileID: 199010598}
m_RootOrder: 9
m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1215840947
MonoBehaviour:
@ -4324,7 +4494,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 1.5
disappearTime: 0.1
area: 0
@ -4476,7 +4647,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 10
disappearTime: 1
area: 0
@ -4564,7 +4736,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 0.5
disappearTime: 0.5
area: 0
@ -4785,8 +4958,8 @@ GameObject:
m_Component:
- component: {fileID: 1283180270}
- component: {fileID: 1283180267}
- component: {fileID: 1283180269}
- component: {fileID: 1283180268}
- component: {fileID: 1283180271}
m_Layer: 11
m_Name: Composite Camera
m_TagString: Untagged
@ -4837,6 +5010,23 @@ Camera:
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!114 &1283180268
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1283180266}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
m_Name:
m_EditorClassIdentifier:
sharedProfile: {fileID: 11400000, guid: b984c3d9099d24744bc6ed30a79377cb, type: 2}
isGlobal: 1
blendDistance: 0
weight: 1
priority: 0
--- !u!114 &1283180269
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -4890,8 +5080,8 @@ MonoBehaviour:
colorBlindnessType: 0
colorBlindnessStrength: 1
m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
m_ShowToolkit: 1
m_ShowCustomSorter: 1
m_ShowToolkit: 0
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
m_BeforeStackBundles: []
@ -4910,23 +5100,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 16
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1283180271
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1283180266}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
m_Name:
m_EditorClassIdentifier:
sharedProfile: {fileID: 11400000, guid: b984c3d9099d24744bc6ed30a79377cb, type: 2}
isGlobal: 1
blendDistance: 0
weight: 1
priority: 0
--- !u!1 &1329758486
GameObject:
m_ObjectHideFlags: 0
@ -5258,7 +5431,7 @@ MeshFilter:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1379541361}
m_Mesh: {fileID: 2019466546}
m_Mesh: {fileID: 1011445328}
--- !u!114 &1379541365
MonoBehaviour:
m_ObjectHideFlags: 0
@ -5686,8 +5859,8 @@ MonoBehaviour:
colorBlindnessType: 0
colorBlindnessStrength: 1
m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
m_ShowToolkit: 1
m_ShowCustomSorter: 1
m_ShowToolkit: 0
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
m_BeforeStackBundles: []
@ -6204,7 +6377,7 @@ Transform:
- {fileID: 1061158672}
- {fileID: 1858061293}
m_Father: {fileID: 199010598}
m_RootOrder: 4
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1690794387
MonoBehaviour:
@ -6218,7 +6391,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 10
disappearTime: 1
area: 2
@ -7037,7 +7211,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 199010598}
m_RootOrder: 10
m_RootOrder: 11
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1890969983
GameObject:
@ -7724,7 +7898,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 0100000002000000
appearSataes:
List: 0100000002000000
videoStopTime: 1
disappearTime: 1
area: 0
@ -7789,7 +7964,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
width: 8
length: 5
depth: 5
height: 3
blackLength: 0.89
PixelsByMeter: 360
@ -7953,7 +8128,7 @@ Transform:
- {fileID: 423869584}
- {fileID: 2086317001}
m_Father: {fileID: 199010598}
m_RootOrder: 3
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1933714483
MonoBehaviour:
@ -7967,7 +8142,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 01000000
appearSataes:
List: 01000000
videoStopTime: 10
disappearTime: 1
area: 2
@ -8042,7 +8218,7 @@ Transform:
- {fileID: 351311319}
- {fileID: 47501850}
m_Father: {fileID: 199010598}
m_RootOrder: 11
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1973785474
MonoBehaviour:
@ -8056,7 +8232,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 0100000002000000
appearSataes:
List: 0100000002000000
videoStopTime: 10
disappearTime: 1
area: 0
@ -8144,7 +8321,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name:
m_EditorClassIdentifier:
appearSataes: 02000000
appearSataes:
List: 02000000
videoStopTime: 0.5
disappearTime: 0.5
area: 0
@ -8250,166 +8428,6 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2008324328}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!43 &2019466546
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 'Space Ground Mesh: (8x5x3)'
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 24
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 16
localAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 0
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00
m_VertexData:
serializedVersion: 2
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: 000080c000000000000020c0000000000000803f00000000e4388e3e00000000000080c00000000000002040000000000000803f00000000e4388e3e0000203f0000804000000000000020c0000000000000803f000000008ee3383f00000000000080400000000000002040000000000000803f000000008ee3383f0000203f000080c000000000000020400000000000000000000080bfe4388e3e0000203f000080c000004040000020400000000000000000000080bfe4388e3e0000803f0000804000000000000020400000000000000000000080bf8ee3383f0000203f0000804000004040000020400000000000000000000080bf8ee3383f0000803f000080c000000000000020c00000803f0000000000000000000000000000203f000080c000004040000020c00000803f0000000000000000000000000000803f000080c000000000000020400000803f0000000000000000e4388e3e0000203f000080c000004040000020400000803f0000000000000000e4388e3e0000803f000080400000000000002040000080bf00000000000000008ee3383f0000203f000080400000404000002040000080bf00000000000000008ee3383f0000803f0000804000000000000020c0000080bf00000000000000000000803f0000203f0000804000004040000020c0000080bf00000000000000000000803f0000803f
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.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &2024329733
GameObject:
m_ObjectHideFlags: 0
@ -8470,7 +8488,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
persistance: 1
state: 1
state: 2
standbyTime: 10
rate: 0
spaceMaterials: []

@ -13,9 +13,9 @@ MonoBehaviour:
m_Name: Composite Camera Profile
m_EditorClassIdentifier:
settings:
- {fileID: 114248890023384196}
- {fileID: 114513662157137290}
--- !u!114 &114248890023384196
- {fileID: 114432601975838678}
- {fileID: 114048862518929068}
--- !u!114 &114048862518929068
MonoBehaviour:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
@ -62,7 +62,7 @@ MonoBehaviour:
dirtIntensity:
overrideState: 0
value: 0
--- !u!114 &114513662157137290
--- !u!114 &114432601975838678
MonoBehaviour:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
@ -79,7 +79,7 @@ MonoBehaviour:
overrideState: 1
value: 1
gradingMode:
overrideState: 0
overrideState: 1
value: 1
externalLut:
overrideState: 0

@ -1,99 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Point
m_Shader: {fileID: 4800000, guid: 44b738c16dcfd5445b9019d3c98e1a3c, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 0
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BlendOp: 0
- _BumpScale: 1
- _CameraFadingEnabled: 0
- _CameraFarFadeDistance: 2
- _CameraNearFadeDistance: 1
- _ColorMode: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DistortionBlend: 0.5
- _DistortionEnabled: 0
- _DistortionStrength: 1
- _DistortionStrengthScaled: 0
- _DstBlend: 0
- _Emission: 1.01
- _EmissionEnabled: 0
- _FlipbookMode: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _InvFade: 1
- _LightingEnabled: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Size: 0.01
- _SmoothnessTextureChannel: 0
- _SoftParticlesEnabled: 0
- _SoftParticlesFarFadeDistance: 1
- _SoftParticlesNearFadeDistance: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- _Color: {r: 0.24699998, g: 0.534646, b: 1, a: 1}
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}

@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: 56457e5f2df74a44c933b2791da81324
timeCreated: 1519897176
licenseType: Free
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

@ -4,12 +4,16 @@ using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using UltraCombos.Utility.Collections;
namespace UltraCombos.Frozen
{
public class CharacterBehaviour : MonoBehaviour
{
public List<State> appearSataes = new List<State>();
public ReorderableAppearSataes appearSataes;
[System.Serializable]
public class ReorderableAppearSataes : ReorderableList<State> { }
public float videoStopTime = 1.5f;
public float disappearTime = 5.0f;
@ -265,8 +269,6 @@ namespace UltraCombos.Frozen
yield return null;
}
}
if (mode) info = "TRIGGER";
@ -325,7 +327,6 @@ namespace UltraCombos.Frozen
{
renderers[i].material.mainTexture = players[i].Texture;
}
}
// standby material
@ -404,17 +405,19 @@ namespace UltraCombos.Frozen
{
float minmax = Mathf.Abs(padding - FrozenScreenToWorldSpace.Instance.width * 0.5f);
float shift = FrozenScreenToWorldSpace.Instance.Position.x;
float x = Mathf.Clamp(pos.x + noise, -minmax + shift, minmax + shift);
transform.position = new Vector3(x, pos.y, pos.z);
pos.x = pos.x + noise;
pos.x = Mathf.Clamp(pos.x, -minmax + shift, minmax + shift);
transform.position = pos;
}
break;
case Area.LeftWall:
case Area.RightWall:
{
float minmax = Mathf.Abs(padding - FrozenScreenToWorldSpace.Instance.length * 0.5f);
float minmax = Mathf.Abs(padding - FrozenScreenToWorldSpace.Instance.depth * 0.5f);
float shift = FrozenScreenToWorldSpace.Instance.Position.z;
float z = Mathf.Clamp(pos.z + noise, -minmax + shift, minmax + shift);
transform.position = new Vector3(pos.x, pos.y, z);
pos.z = pos.z + noise;
pos.z = Mathf.Clamp(pos.z, -minmax + shift, minmax + shift);
transform.position = pos;
}
break;
}
@ -437,7 +440,7 @@ namespace UltraCombos.Frozen
}
if (area == Area.TopWall)
{
newPos.z = FrozenScreenToWorldSpace.Instance.length / 2;
newPos.z = FrozenScreenToWorldSpace.Instance.depth / 2;
q.SetLookRotation(Vector3.forward);
}
transform.rotation = q;
@ -456,7 +459,7 @@ namespace UltraCombos.Frozen
break;
case Area.LeftWall:
case Area.RightWall:
wallRoi.x = Random.Range(minX, FrozenScreenToWorldSpace.Instance.length - minX) / FrozenScreenToWorldSpace.Instance.length;
wallRoi.x = Random.Range(minX, FrozenScreenToWorldSpace.Instance.depth - minX) / FrozenScreenToWorldSpace.Instance.depth;
break;
}
#else
@ -482,7 +485,7 @@ namespace UltraCombos.Frozen
break;
case Area.LeftWall:
case Area.RightWall:
n_pos.z = Mathf.Lerp(-FrozenScreenToWorldSpace.Instance.length / 2, FrozenScreenToWorldSpace.Instance.length / 2, wallRoi.x);
n_pos.z = Mathf.Lerp(-FrozenScreenToWorldSpace.Instance.depth / 2, FrozenScreenToWorldSpace.Instance.depth / 2, wallRoi.x);
break;
}
n_pos.y = Mathf.Lerp(0.0f, FrozenScreenToWorldSpace.Instance.height, wallRoi.y);

@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using UltraCombos.Utility.Attributes;
using UnityEngine;
public enum Area
@ -10,59 +11,35 @@ public enum Area
Floor
}
public class FrozenScreenToWorldSpace : MonoBehaviour {
public static FrozenScreenToWorldSpace Instance {
get {
/*
if (instacnce == null && GameObject.Find("FrozenScreenToWorldSpace").GetComponent<FrozenScreenToWorldSpace>() != null)
instacnce = GameObject.Find("FrozenScreenToWorldSpace").GetComponent<FrozenScreenToWorldSpace>();
else
instacnce = new GameObject("FrozenScreenToWorldSpace").AddComponent<FrozenScreenToWorldSpace>();
*/
public class FrozenScreenToWorldSpace : MonoBehaviour
{
public static FrozenScreenToWorldSpace Instance
{
get
{
return instacnce;
}
}
private static FrozenScreenToWorldSpace instacnce;
public float width = 8;
public float length = 5;
public float depth = 5;
public float height = 3;
public float blackLength = 0.89f;
public float PixelsByMeter = 360;
public float finalPixelsByMeter = 90;
[System.Serializable]
public class RenderTextureROI
{
public float X;
public float Y;
public float ROI_X;
public float ROI_Y;
public RenderTextureROI(float x, float y, float roi_x, float roi_y)
{
X = x;
Y = y;
ROI_X = roi_x;
ROI_Y = roi_y;
}
public RenderTextureROI() { }
}
[SerializeField]
RenderTextureROI LeftWall = new RenderTextureROI();
[SerializeField]
RenderTextureROI TopWall = new RenderTextureROI();
[SerializeField]
RenderTextureROI RightWall = new RenderTextureROI();
[SerializeField]
RenderTextureROI Floor = new RenderTextureROI();
Dictionary<Area, RenderTextureROI> RenderTextureROIList = new Dictionary<Area, RenderTextureROI>();
[Header("Debug")]
[SerializeField, ReadOnly]
Rect LeftWall;
[SerializeField, ReadOnly]
Rect TopWall;
[SerializeField, ReadOnly]
Rect RightWall;
[SerializeField, ReadOnly]
Rect Floor;
Dictionary<Area, Plane> wallPlaneList = new Dictionary<Area, Plane>();
private float totalLength;
private float totalWidth;
Dictionary<Area, Rect> RenderTextureROIList = new Dictionary<Area, Rect>();
private void Awake()
{
@ -72,60 +49,49 @@ public class FrozenScreenToWorldSpace : MonoBehaviour {
void InitailROISetting()
{
totalLength = height * 2 + width;
totalWidth = height + length + blackLength;
LeftWall = new RenderTextureROI(0, height / totalWidth, height / totalLength, length / totalWidth);
RightWall = new RenderTextureROI((height + width) / totalLength, height / totalWidth, height / totalLength, length / totalWidth);
TopWall = new RenderTextureROI((height) / totalLength, 0, width / totalLength, height / totalWidth);
Floor = new RenderTextureROI(height / totalLength, height / totalWidth, width / totalLength, length / totalWidth);
RenderTextureROIList.Add(Area.LeftWall, LeftWall);
RenderTextureROIList.Add(Area.RightWall, RightWall);
RenderTextureROIList.Add(Area.TopWall, TopWall);
RenderTextureROIList.Add(Area.Floor, Floor);
wallPlaneList.Add(Area.LeftWall, new Plane(Vector3.right, new Vector3(-width * 0.5f, 0, 0)));
wallPlaneList.Add(Area.RightWall, new Plane(Vector3.left, new Vector3(width * 0.5f, 0, 0)));
wallPlaneList.Add(Area.TopWall, new Plane(Vector3.back, new Vector3(0, 0, length * 0.5f)));
}
var totalWidth = height * 2 + width;
var totalHeight = height + depth + blackLength;
public RenderTextureROI GetROI(Area area)
{
if (RenderTextureROIList.ContainsKey(area))
return RenderTextureROIList[area];
return null;
}
var nWidth = width / totalWidth;//normalized
var nWidth2 = height / totalWidth;
public Plane GetWallPlane(Area area)
var nHeight = height / totalHeight;
var nHeight2 = depth / totalHeight;
TopWall = new Rect(nWidth2, 0, nWidth, nHeight);
LeftWall = new Rect(0, nHeight, nWidth2, nHeight2);
Floor = new Rect(nWidth2, nHeight, nWidth, nHeight2);
RightWall = new Rect(nWidth + nWidth2, nHeight, nWidth2, nHeight2);
RenderTextureROIList = new Dictionary<Area, Rect>()
{
if (wallPlaneList.ContainsKey(area))
return wallPlaneList[area];
return new Plane();
[Area.LeftWall] = LeftWall,
[Area.RightWall] = RightWall,
[Area.TopWall] = TopWall,
[Area.Floor] = Floor,
};
}
public Vector2 GetFinalScreenPos(Area area, Vector2 wallROI)
{
if(!RenderTextureROIList.ContainsKey(area))
if (!RenderTextureROIList.ContainsKey(area))
return Vector2.zero;
RenderTextureROI textureROI = GetROI(area);
Rect textureROI = RenderTextureROIList[area];
Vector2 currenPos = Vector2.zero;
if (area == Area.LeftWall)
{
float x = textureROI.X + (1 - wallROI.y) * textureROI.ROI_X;
float y = textureROI.Y + (1 - wallROI.x) * textureROI.ROI_Y;
currenPos = new Vector2(x, y);
}
if (area == Area.RightWall)
{
float x = textureROI.X + wallROI.y * textureROI.ROI_X;
float y = textureROI.Y + (1 - wallROI.x) * textureROI.ROI_Y;
currenPos = new Vector2(x, y);
}
if (area == Area.TopWall)
switch (area)
{
float x = textureROI.X + wallROI.x * textureROI.ROI_X;
float y = textureROI.Y + (1 - wallROI.y) * textureROI.ROI_Y;
currenPos = new Vector2(x, y);
case Area.LeftWall:
currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(1 - wallROI.y, 1 - wallROI.x));
break;
case Area.RightWall:
currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(wallROI.y, 1 - wallROI.x));
break;
case Area.TopWall:
currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(wallROI.x, 1 - wallROI.y));
break;
}
currenPos = new Vector2(currenPos.x * Screen.width, ( 1 - currenPos.y) * Screen.height);
currenPos = new Vector2(currenPos.x * Screen.width, (1 - currenPos.y) * Screen.height);
return currenPos;
}
@ -136,24 +102,19 @@ public class FrozenScreenToWorldSpace : MonoBehaviour {
switch (area)
{
case Area.TopWall:
{
roi.x = (position.x + width * 0.5f) / width;
roi.y = position.y / height;
}
break;
case Area.LeftWall:
{
roi.x = (position.z + length * 0.5f) / length;
roi.x = (position.z + depth * 0.5f) / depth;
roi.y = position.y / height;
}
break;
case Area.RightWall:
{
roi.x = (position.z + length * 0.5f) / length;
roi.x = (position.z + depth * 0.5f) / depth;
roi.y = position.y / height;
}
break;
}
// Debug.Log($"{area} {position.ToString()} {roi.ToString()}");
return roi;
}

@ -21,10 +21,6 @@ namespace UltraCombos.Frozen
[Range(0, 1)]
public float rate = 0.0f;
// [SerializeField]
// UniformBlendedStructuredBuffer uniform;
//[SerializeField]
public List<Material> spaceMaterials = new List<Material>();
[SerializeField, Range(0.0f, 0.1f)]
@ -34,19 +30,6 @@ namespace UltraCombos.Frozen
[SerializeField]
Material snowMaterial;
// [SerializeField]
// BlendedCosineGradient cosineGradient;
// [SerializeField]
// KinectOpticalFlow kinect;
[SerializeField]
float nightKinectAmount = 30.0f;
// [SerializeField]
// ParticleViewerProcedural particleViewer;
[SerializeField, Range(0, 1)]
float dayParticleRate = 1.0f;
List<CharacterBehaviour> characters;
float target_rate = 0.0f;
@ -62,7 +45,6 @@ namespace UltraCombos.Frozen
{
var cbs = FindObjectsOfType<CharacterBehaviour>();
characters = new List<CharacterBehaviour>(cbs);
//debug = false;
}
private void Update()
@ -94,19 +76,14 @@ namespace UltraCombos.Frozen
rate = Mathf.Lerp(rate, target_rate, 0.02f);
// uniform.rate = rate;
foreach (var mat in spaceMaterials)
mat.SetFloat("_Rate", rate);
//snowMaterial.SetFloat("_Size", Mathf.Lerp(0.0f, snowSize, rate));
snowMaterial.SetFloat("_Size", Mathf.Lerp(daySnowSize, nightSnowSize, rate));
// cosineGradient.rate = rate;
// kinect.kinectAmount = Mathf.Lerp(1.0f, nightKinectAmount, rate);
// particleViewer.VertexCount = (int)(Mathf.Lerp(dayParticleRate, 1.0f, rate) * particleViewer.buffer.count);
foreach (var chr in characters)
{
chr.Active = chr.appearSataes.Contains(state);
chr.Active = chr.appearSataes.List.Contains(state);
}
}
@ -130,5 +107,3 @@ namespace UltraCombos.Frozen
}
}
}

@ -1,221 +0,0 @@
#pragma kernel CSMain
#include "UnityCG.cginc"
#include "../../ParticleWorks/Shader/Inc/Defines.cginc"
#include "../../ParticleWorks/Shader/Inc/Math.cginc"
#include "../../ParticleWorks/Shader/Noise/noise3Dgrad.cginc"
#include "../../ParticleWorks/Shader/ParticleUniforms.cginc"
CBUFFER_START(Variables)
float timeStep;
float timeValue;
float bufferCount;
int home_count;
float3 coeffsA;
float3 coeffsB;
float3 coeffsC;
float3 coeffsD;
float4 FluidGridDim;
float4 FluidGridRoot;
float4 FluidGridSize;
CBUFFER_END
RWStructuredBuffer<Particle> ssbo;
RWStructuredBuffer<ParticleUniforms> uniform_buffer;
RWStructuredBuffer<float4> home_position_buffer;
RWStructuredBuffer<float4> home_velocity_buffer;
RWStructuredBuffer<float3> fluid_velocity_buffer;
Texture3D<float4> DFVolume;
SamplerState samplerDFVolume;
float4 SampleVolume(float3 p)
{
return DFVolume.SampleLevel(samplerDFVolume, p, 0);
}
[numthreads(WORK_GROUP_SIZE, 1, 1)]
void CSMain(uint3 id : SV_DispatchThreadID)
{
uint idx = id.x;
Particle p = ssbo[idx];
float4 home_position = (home_count > 0) ? home_position_buffer[p.seed * home_count] : float4(0, 0, 0, 1);
float4 home_velocity = (home_count > 0) ? home_velocity_buffer[p.seed * home_count] : float4(0, 0, 0, 1);
ParticleUniforms uni = uniform_buffer[0];
float factor = p.color.a;
float3 acc = float3(0, 0, 0);
float3 F = float3(0, 0, 0);
if (home_count > 0)
{
float duration = uni.lifeDuration * (1.0f + factor * uni.lifeVariation);
float current_life = p.life * duration + timeStep;
//bool is_reset = false;
//if (current_life > duration)
//{
// current_life -= duration;
// is_reset = true;
//}
//if (is_reset || p.life < 0.0f)
if (current_life > duration && uni.lifeDuration > 0.1f)
{
current_life -= duration;
//if (isEmit == 0 && current_life > 0.0) current_life -= duration;
p.position = home_position.xyz;
p.color.rgb = float3(1, 1, 1);
p.velocity = home_velocity.xyz * 20.0f * pow(length(home_velocity.xyz), 2.0f);
//p.velocity = forceDirection * 3.0f;
}
p.life = current_life / duration;
}
// noise
{
//float n_seed = p.seed * 0.12f;
//float time_seed = timeValue * noiseTimeScale;
float3 np = p.position * uni.noiseFrequency;
float3 n1, n2;
snoise(np, n1);
snoise(np + float3(uni.noiseSeed, p.seed * 0.12f, timeValue * uni.noiseTimeScale), n2);
F = cross(n1, n2);
acc += F * uni.noiseStrength;
}
// convergence
{
F = -p.position;
acc += F * uni.convergence;
}
// home as tangential
{
F = cross(p.position, float3(0, 1, 0));
float d = clamp(abs(p.position.y), 1, 100);
F = normalize(F) * 10.0f / pow(d, 2 * 2);
acc += F * uni.homeStrength;
}
// force
{
F = float3(0, 0, 0);
if (length(uni.forceDirection) > 0.1f)
F = normalize(uni.forceDirection) * 10.0f;
acc += F * uni.forceStrength;
}
// impulse
{
//F = uni.impulsePosition - p.position;
//float mag = F.x*F.x + F.y*F.y + F.z*F.z;
//float rad2 = uni.impulseRadius * uni.impulseRadius;
//acc += F * exp(-mag / rad2) * uni.impulseStrength;
}
// fluid
{
float3 dim = ((p.position - FluidGridRoot) / FluidGridSize) * FluidGridDim;
dim = clamp(dim, float3(0, 0, 0), FluidGridDim - 1);
int idx = (int)dim.x + (int)dim.y * FluidGridDim.x + (int)dim.z * FluidGridDim.x * FluidGridDim.y;
float3 F = fluid_velocity_buffer[idx].xyz * 5.0f;
acc += F * uni.impulseStrength;
}
float3 volume_cc = float3(0.0, 0.424, 2.853);
// volume
{
//float3 volume_dim = float3(50, 50, 50);
//float3 dim = ((p.position - FluidGridRoot) / FluidGridSize) * volume_dim;
//dim = clamp(dim, float3(0, 0, 0), volume_dim - 1);
//int idx = (int)dim.x + (int)dim.y * volume_dim.x + (int)dim.z * volume_dim.x * volume_dim.y;
float4 df = SampleVolume((p.position - FluidGridRoot) / FluidGridSize);
float3 F = -df.xyz * pow(saturate(df.w / 1.0), 1.0 / 2.2) * 0.9;
float3 np = p.position * uni.noiseFrequency;
float3 n1 = float3(0, 0, 0);
snoise(np + float3(uni.noiseSeed, p.seed, timeValue * 5.0), n1);
//F = float3(0, 0, 0);
//F += cross(-df.xyz, float3(0, -1, 0)) * (1.0 - saturate(df.w / 0.1)) * 0.95;
F += cross(-df.xyz, n1) * (1.0 - saturate(df.w / 0.1)) * 0.15;
//float4 data = volume_data[idx];
//float3 F = -data.xyz * pow(data.w, 2.2);
//F += cross(-data.xyz, float3(1, 0, 0)) * (1.0 - saturate(data.w)) * 0.1;
//if (data.w < 0.1) F += data.xyz * 10.0;
//float3 F = lerp(cross(data.xyz, p.velocity), -data.xyz, saturate(data.w));
acc += F * 10.0;
//float th = 0.01;
//acc += float3(1, 0, 0) * (1.0 - saturate(df.w / th)) * 12.0;
if (abs(p.position.z - volume_cc.z) < 0.8)
acc += float3(1, 0, 0) * 7.0;
}
acc *= uni.movement;
p.velocity += acc * timeStep;
{
float4 df = SampleVolume((p.position - FluidGridRoot) / FluidGridSize);
float th = 0.01;
float3 dp = p.position - df.xyz * df.w;
p.velocity = lerp(df.xyz, p.velocity, saturate(df.w / th));
if (dot(p.position - dp, volume_cc - dp) > 0.0) p.position = dp + df.xyz * th;
}
p.position += p.velocity * timeStep;
//float damping = lerp(0.965f, 0.985f, p.seed) * velocityDamping;
p.velocity *= lerp(0.965f, 0.985f, p.seed) * uni.velocityDamping;
// calculate rotate quat
{
float vel = length(p.velocity);
float a = (1 + factor) * vel * 0.05f;
float4 q = quat_from_axis_angle(normalize(p.velocity + float3(0, FLT_EPSILON, 0)), a);
q = quat_mult(p.quat, q);
q = normalize(q);
p.quat = lerp(p.quat, q, saturate(vel - 0.01f));
}
// calculate model matrix
{
float size = uni.geomSize * lerp(1, pow(1.0f - saturate(p.life), 1.0f / 2.2f), any(uni.lifeDuration));
size *= lerp(0.5, 1.0, p.seed);
if (idx > (uint)(uni.numRate * bufferCount) || (p.life < 0.0f && uni.lifeDuration > 0.1f))
{
size = 0.0f;
}
float4x4 mat = make_translation_matrix(p.position);
mat = mul(mat, quat_to_rotation_matrix(p.quat));
mat = mul(mat, make_scaling_matrix(size));
p.model_matrix = mat;
}
// ground collision
{
float3 pos = mul(p.model_matrix, float4(p.position, 1.0f)).xyz;
pos = p.position;
if (pos.y < 0.0f)
{
p.velocity.y = abs(p.velocity.y) * 0.8f;
p.position.y = 0.0f;
}
}
// cosine gradient
{
float t = (uni.lifeDuration > 0.1f) ? clamp(p.life, 0.0f, 1.0f) : factor;
half3 rgb = cosine_gradient(coeffsA, coeffsB, coeffsC, coeffsD, t);
#if !defined(UNITY_COLORSPACE_GAMMA)
rgb = GammaToLinearSpace(rgb);
#endif
p.color.rgb = rgb;
}
ssbo[id.x] = p;
}

@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: 8233b22e9c5d09d43ab3350ff5ed572a
timeCreated: 1513318067
licenseType: Free
ComputeShaderImporter:
externalObjects: {}
currentAPIMask: 4
userData:
assetBundleName:
assetBundleVariant:

@ -1,99 +0,0 @@
Shader "UltraCombos/Frozen/ParticleUnlitPoint"
{
Properties
{
_Emission("Emission", Range(0, 5)) = 0.0
_Size("Size", Range(0.0, 0.1)) = 0.01
}
SubShader
{
Tags{ "RenderType" = "Opaque" }
LOD 100
Blend OneMinusDstColor One
//Blend One One
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma geometry geom
#pragma fragment frag
#pragma multi_compile_fog
#include "../../ParticleWorks/Shader/Inc/Defines.cginc"
#include "UnityCG.cginc"
struct v2g
{
float4 vertex : SV_POSITION;
float4 color : COLOR;
};
struct g2f
{
float4 vertex : SV_POSITION;
float2 uv : TEXCOORD;
float4 color : COLOR;
UNITY_FOG_COORDS(1)
};
fixed4 _Color;
half _Emission;
half _Size;
float4x4 model_matrix;
#ifdef SHADER_API_D3D11
StructuredBuffer<Particle> ssbo;
#endif
v2g vert(appdata_base v, uint vid : SV_VertexID)
{
v2g o = (v2g)0;
#ifdef SHADER_API_D3D11
o.vertex = mul(model_matrix, float4(ssbo[vid].position, 1.0));
o.vertex.w = ssbo[vid].life;
o.color = ssbo[vid].color;
#endif
return o;
}
[maxvertexcount(3)]
void geom(point v2g input[1], inout TriangleStream<g2f> OutputStream)
{
float3 position = input[0].vertex.xyz;
position = UnityObjectToViewPos(position);
float size = _Size * pow(saturate(1.0f - input[0].vertex.w), 1.0f / 2.2f);
const int side = 3;
g2f o = (g2f)0;
o.color = input[0].color;
float delta_a = UNITY_PI * 2.0f / side;
for (int i = 0; i < side; i++)
{
float a = delta_a * i;
float x = cos(-a);
float y = sin(-a);
o.vertex = mul(UNITY_MATRIX_P, float4(position + float3(x * size, y * size, 0), 1.0f));
o.uv = float2(x, y);
UNITY_TRANSFER_FOG(o, o.vertex);
OutputStream.Append(o);
}
OutputStream.RestartStrip();
}
fixed4 frag(g2f i) : SV_Target
{
clip(0.5f / sqrt(2.0f) - length(i.uv));
fixed4 col = i.color;
col.rgb *= 1 + _Emission;
UNITY_APPLY_FOG(i.fogCoord, col);
return col;
}
ENDCG
}
}
}

@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: 44b738c16dcfd5445b9019d3c98e1a3c
timeCreated: 1519897326
licenseType: Free
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

@ -1,39 +0,0 @@
#pragma kernel CSMain
#include "UnityCG.cginc"
#include "../../ParticleWorks/Shader/Inc/Defines.cginc"
struct Vertex
{
float3 position;
float3 normal;
float4 color;
float4 uv;
//float2 uv2;
//float4 tangent;
};
RWStructuredBuffer<Particle> ssbo;
RWStructuredBuffer<Vertex> origin_buffer;
RWStructuredBuffer<Vertex> vertex_buffer;
[numthreads(WORK_GROUP_SIZE, 1, 1)]
void CSMain(uint3 id : SV_DispatchThreadID)
{
Vertex o = origin_buffer[id.x];
Vertex v = vertex_buffer[id.x];
int index = o.uv.z;
Particle p = ssbo[index];
v.position = mul(p.model_matrix, float4(o.position.xzy, 1)).xyz;
v.normal = mul((float3x3)p.model_matrix, o.normal);
v.color = p.color;
v.uv = float4(o.uv.xy, p.seed, 0);
float space_height = 3.0;
float limit_height = 0.1;
v.position.y = saturate(v.position.y / space_height) * limit_height;
vertex_buffer[id.x] = v;
}

@ -1,192 +0,0 @@
#pragma kernel CSMain
#include "UnityCG.cginc"
#include "../../ParticleWorks/Shader/Inc/Defines.cginc"
#include "../../ParticleWorks/Shader/Inc/Math.cginc"
#include "../../ParticleWorks/Shader/Noise/noise3Dgrad.cginc"
#include "../../ParticleWorks/Shader/ParticleUniforms.cginc"
CBUFFER_START(Variables)
float timeStep;
float timeValue;
float bufferCount;
float3 coeffsA;
float3 coeffsB;
float3 coeffsC;
float3 coeffsD;
float4 FluidGridDim;
float4 FluidGridRoot;
float4 FluidGridSize;
CBUFFER_END
RWStructuredBuffer<Particle> ssbo;
RWStructuredBuffer<ParticleUniforms> uniform_buffer;
StructuredBuffer<int> home_count_buffer;
StructuredBuffer<float4> home_position_buffer;
StructuredBuffer<float4> home_velocity_buffer;
StructuredBuffer<float3> fluid_velocity_buffer;
float rand(float2 co)
{
return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453);
}
float rand(float a, float b)
{
return rand(float2(a, b));
}
[numthreads(WORK_GROUP_SIZE, 1, 1)]
void CSMain(uint3 id : SV_DispatchThreadID)
{
int home_count = home_count_buffer[0];
uint idx = id.x;
Particle p = ssbo[idx];
float4 home_position = (home_count > 0) ? home_position_buffer[p.seed * home_count] : float4(0, 0, 0, 1);
float4 home_velocity = (home_count > 0) ? home_velocity_buffer[p.seed * home_count] : float4(0, 0, 0, 1);
ParticleUniforms uni = uniform_buffer[0];
float3 acc = float3(0, 0, 0);
float3 F = float3(0, 0, 0);
if (home_count > 0)
{
float duration = uni.lifeDuration * (1.0f + p.seed * uni.lifeVariation);
float current_life = p.life * duration + timeStep;
//bool is_reset = false;
//if (current_life > duration)
//{
// current_life -= duration;
// is_reset = true;
//}
//if (is_reset || p.life < 0.0f)
if (current_life > duration && uni.lifeDuration > 0.1f)
{
current_life -= duration;
//if (isEmit == 0 && current_life > 0.0) current_life -= duration;
p.position = home_position.xyz;
p.color.rgb = float3(1, 1, 1);
//p.velocity = home_velocity.xyz * 20.0f * pow(length(home_velocity.xyz), 2.0f);
p.velocity = home_velocity.xyz * 100.0f;// * uni.homeStrength;
//p.velocity = forceDirection * 3.0f;
}
p.life = current_life / duration;
}
// noise
{
//float n_seed = p.seed * 0.12f;
//float time_seed = timeValue * noiseTimeScale;
float3 np = p.position * uni.noiseFrequency;
float3 n1, n2;
snoise(np, n1);
snoise(np + float3(uni.noiseSeed, p.seed * 0.12f, timeValue * uni.noiseTimeScale), n2);
F = cross(n1, n2);
acc += F * uni.noiseStrength;
}
// convergence
{
F = -p.position;
acc += F * uni.convergence;
}
// home as tangential
/*
{
F = cross(p.position, float3(0, 1, 0));
float d = clamp(abs(p.position.y), 1, 100);
F = normalize(F) * 10.0f / pow(d, 2 * 2);
acc += F * uni.homeStrength;
}
*/
// force
{
F = float3(0, 0, 0);
if (length(uni.forceDirection) > 0.1f)
F = normalize(uni.forceDirection) * 10.0f;
acc += F * uni.forceStrength;
}
// impulse
{
//F = uni.impulsePosition - p.position;
//float mag = F.x*F.x + F.y*F.y + F.z*F.z;
//float rad2 = uni.impulseRadius * uni.impulseRadius;
//acc += F * exp(-mag / rad2) * uni.impulseStrength;
}
// fluid
{
float3 dim = ((p.position - FluidGridRoot) / FluidGridSize) * FluidGridDim;
dim = clamp(dim, float3(0, 0, 0), FluidGridDim - 1);
int idx = (int)dim.x + (int)dim.y * FluidGridDim.x + (int)dim.z * FluidGridDim.x * FluidGridDim.y;
float3 F = fluid_velocity_buffer[idx].xyz * 5.0f;
acc += F * uni.impulseStrength;
}
acc *= uni.movement;
p.velocity += acc * timeStep;
p.position += p.velocity * timeStep;
//float damping = lerp(0.965f, 0.985f, p.seed) * velocityDamping;
p.velocity *= lerp(0.965f, 0.985f, p.seed) * uni.velocityDamping;
// calculate rotate quat
{
float vel = length(p.velocity);
float a = (1 + p.seed) * vel * 0.05f;
float4 q = quat_from_axis_angle(normalize(p.velocity + float3(0, FLT_EPSILON, 0)), a);
q = quat_mult(p.quat, q);
q = normalize(q);
p.quat = lerp(p.quat, q, saturate(vel - 0.01f));
}
// calculate model matrix
{
//float life = saturate(p.life);
//float th = 0.05f;
//size = (life < th) ? (life / th) : ((1.0 - life) / (1.0 - th));
//size = lerp(1, sin(size * UNITY_HALF_PI), any(uni.lifeDuration));
float size = sin(saturate(p.life / 0.1f) * UNITY_HALF_PI);
size = lerp(1, size, any(uni.lifeDuration));
size *= uni.geomSize * lerp(0.5, 1.0, rand(p.seed, 5.4687));
if (idx > (uint)(uni.numRate * bufferCount) || (p.life < 0.0f && uni.lifeDuration > 0.1f))
{
size = 0.0f;
}
float4x4 mat = make_translation_matrix(p.position);
//mat = mul(mat, quat_to_rotation_matrix(p.quat));
mat = mul(mat, quat_to_rotation_matrix(float4(0, p.quat.y, 0, 1)));
mat = mul(mat, make_scaling_matrix(size));
p.model_matrix = mat;
}
// ground collision
{
float3 pos = mul(p.model_matrix, float4(p.position, 1.0f)).xyz;
pos = p.position;
if (pos.y < 0.0f)
{
p.velocity.y = abs(p.velocity.y) * 0.8f;
p.position.y = 0.0f;
}
}
// cosine gradient
{
float t = (uni.lifeDuration > 0.1f) ? clamp(p.life, 0.0f, 1.0f) : rand(p.seed, 1.2487);
half3 rgb = cosine_gradient(coeffsA, coeffsB, coeffsC, coeffsD, t);
#if !defined(UNITY_COLORSPACE_GAMMA)
rgb = GammaToLinearSpace(rgb);
#endif
p.color.rgb = rgb;
}
p.color.a = cos(saturate(p.life) * UNITY_HALF_PI);
ssbo[id.x] = p;
}

@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: d6604fabdbb13e9428c849c59feccdac
timeCreated: 1513318067
licenseType: Free
ComputeShaderImporter:
externalObjects: {}
currentAPIMask: 4
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save