111
This commit is contained in:
@@ -122,78 +122,6 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &6388584
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6388586}
|
||||
- component: {fileID: 6388585}
|
||||
- component: {fileID: 6388587}
|
||||
m_Layer: 0
|
||||
m_Name: ShadowColliderSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &6388585
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6388584}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 836b4625937ba9d45be59618cd2a6a15, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowLight: {fileID: 354864581}
|
||||
shadowWall: {fileID: 1371778128}
|
||||
shadowLayerName: Shadow
|
||||
obstacleLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1024
|
||||
generateOnStart: 1
|
||||
updateInRealTime: 0
|
||||
updateInterval: 0.1
|
||||
shadowColliders: []
|
||||
--- !u!4 &6388586
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6388584}
|
||||
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: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &6388587
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6388584}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7911d7cd239cfb44c910a896590b2db4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowLight: {fileID: 354864581}
|
||||
shadowWall: {fileID: 1371778128}
|
||||
shadowLayerName: Shadow
|
||||
keepOriginalMesh: 1
|
||||
shadowIntensity: 1
|
||||
--- !u!1 &282165411
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -440,7 +368,7 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: -7.901, y: 3.191, z: 0}
|
||||
--- !u!1 &488143178
|
||||
--- !u!1 &911800373
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -448,10 +376,10 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 488143182}
|
||||
- component: {fileID: 488143181}
|
||||
- component: {fileID: 488143180}
|
||||
- component: {fileID: 488143179}
|
||||
- component: {fileID: 911800377}
|
||||
- component: {fileID: 911800376}
|
||||
- component: {fileID: 911800375}
|
||||
- component: {fileID: 911800374}
|
||||
m_Layer: 0
|
||||
m_Name: MainCamera
|
||||
m_TagString: MainCamera
|
||||
@@ -459,13 +387,13 @@ GameObject:
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &488143179
|
||||
--- !u!114 &911800374
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 488143178}
|
||||
m_GameObject: {fileID: 911800373}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||
@@ -503,21 +431,21 @@ MonoBehaviour:
|
||||
m_MipBias: 0
|
||||
m_VarianceClampScale: 0.9
|
||||
m_ContrastAdaptiveSharpening: 0
|
||||
--- !u!81 &488143180
|
||||
--- !u!81 &911800375
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 488143178}
|
||||
m_GameObject: {fileID: 911800373}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &488143181
|
||||
--- !u!20 &911800376
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 488143178}
|
||||
m_GameObject: {fileID: 911800373}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
@@ -562,13 +490,13 @@ Camera:
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &488143182
|
||||
--- !u!4 &911800377
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 488143178}
|
||||
m_GameObject: {fileID: 911800373}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.102426775, y: -0.0044816174, z: 0.0004422885, w: 0.9947304}
|
||||
m_LocalPosition: {x: 0.582394, y: 6.9680796, z: -1.88675}
|
||||
@@ -577,369 +505,6 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &507957216
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 507957221}
|
||||
- component: {fileID: 507957220}
|
||||
- component: {fileID: 507957219}
|
||||
- component: {fileID: 507957218}
|
||||
- component: {fileID: 507957217}
|
||||
m_Layer: 9
|
||||
m_Name: Cube (2)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &507957217
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 507957216}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 717ba394b4fc8354db9479f2f858d521, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
mainCamera: {fileID: 0}
|
||||
model3D: {fileID: 507957216}
|
||||
edgeSegments: 16
|
||||
--- !u!65 &507957218
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 507957216}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &507957219
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 507957216}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &507957220
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 507957216}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &507957221
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 507957216}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0.54599994, y: 5.58, z: 2.41}
|
||||
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!1 &767553978
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 767553982}
|
||||
- component: {fileID: 767553981}
|
||||
- component: {fileID: 767553980}
|
||||
- component: {fileID: 767553983}
|
||||
- component: {fileID: 767553985}
|
||||
m_Layer: 0
|
||||
m_Name: Plane
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!23 &767553980
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 767553978}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 4918217319983852589, guid: 9d45be5b270ce92469f786691135214c, type: 3}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &767553981
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 767553978}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &767553982
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 767553978}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 5, z: 5}
|
||||
m_LocalScale: {x: 2, y: 2, z: 2}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
|
||||
--- !u!114 &767553983
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 767553978}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 28f43899f7559ca4e915497eaf23cc4f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowCamera: {fileID: 282165414}
|
||||
shadowRT: {fileID: 8400000, guid: 3746a9ea25b5f084f963f36250ae89a2, type: 2}
|
||||
polygonCollider: {fileID: 0}
|
||||
shadowThreshold: 0.3
|
||||
gridSize: 2
|
||||
simplifyTolerance: 2
|
||||
--- !u!65 &767553985
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 767553978}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 10, y: 1.2295777, z: 10.000002}
|
||||
m_Center: {x: 0, y: -0.61478895, z: 1.6312508e-15}
|
||||
--- !u!1 &1283729761
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1283729764}
|
||||
- component: {fileID: 1283729763}
|
||||
- component: {fileID: 1283729762}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1283729762
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1283729761}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_UsePipelineSettings: 1
|
||||
m_AdditionalLightsShadowResolutionTier: 2
|
||||
m_LightLayerMask: 1
|
||||
m_RenderingLayers: 1
|
||||
m_CustomShadowLayers: 0
|
||||
m_ShadowLayerMask: 1
|
||||
m_ShadowRenderingLayers: 1
|
||||
m_LightCookieSize: {x: 1, y: 1}
|
||||
m_LightCookieOffset: {x: 0, y: 0}
|
||||
m_SoftShadowQuality: 0
|
||||
--- !u!108 &1283729763
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1283729761}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 10
|
||||
m_Type: 1
|
||||
m_Shape: 0
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Intensity: 0.1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 0
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
--- !u!4 &1283729764
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1283729761}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 3.5268085, y: -6.844941, z: 52.119446}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1 &1371778123
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -952,39 +517,13 @@ GameObject:
|
||||
- component: {fileID: 1371778127}
|
||||
- component: {fileID: 1371778126}
|
||||
- component: {fileID: 1371778125}
|
||||
- component: {fileID: 1371778130}
|
||||
- component: {fileID: 1371778129}
|
||||
- component: {fileID: 1371778124}
|
||||
- component: {fileID: 1371778131}
|
||||
m_Layer: 10
|
||||
m_Name: Cube
|
||||
m_Name: Panel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1371778124
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1371778123}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 21f7e71103c1a5941af3223174264656, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
spotLight: {fileID: 354864581}
|
||||
shadowCasters: []
|
||||
shadowCasterLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
shadowReceiverLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
maxShadowDistance: 10
|
||||
shadowCollider: {fileID: 1974410756}
|
||||
--- !u!65 &1371778125
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1073,61 +612,6 @@ Transform:
|
||||
- {fileID: 1835604431}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1371778129
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1371778123}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 28f43899f7559ca4e915497eaf23cc4f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowCamera: {fileID: 282165414}
|
||||
shadowRT: {fileID: 8400000, guid: 3746a9ea25b5f084f963f36250ae89a2, type: 2}
|
||||
polygonCollider: {fileID: 1974410756}
|
||||
shadowThreshold: 0
|
||||
gridSize: 2
|
||||
simplifyTolerance: 0.1
|
||||
--- !u!114 &1371778130
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1371778123}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7b369cd814f44044d8a55791d065e3fb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowCamera: {fileID: 282165414}
|
||||
shadowRT: {fileID: 8400000, guid: 3746a9ea25b5f084f963f36250ae89a2, type: 2}
|
||||
polygonCollider: {fileID: 1974410756}
|
||||
shadowThreshold: 0.1
|
||||
gridResolution: 64
|
||||
minContourArea: 10
|
||||
maxGapDistance: 20
|
||||
--- !u!114 &1371778131
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1371778123}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: eb1369db1529b6543ba24519d5c2a35d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowCamera: {fileID: 282165414}
|
||||
shadowRT: {fileID: 8400000, guid: 3746a9ea25b5f084f963f36250ae89a2, type: 2}
|
||||
polygonCollider: {fileID: 1974410756}
|
||||
shadowThreshold: 0.1
|
||||
downSample: 4
|
||||
minShadowSize: 0.1
|
||||
--- !u!1 &1455178660
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1140,7 +624,6 @@ GameObject:
|
||||
- component: {fileID: 1455178663}
|
||||
- component: {fileID: 1455178662}
|
||||
- component: {fileID: 1455178661}
|
||||
- component: {fileID: 1455178665}
|
||||
m_Layer: 9
|
||||
m_Name: Cube
|
||||
m_TagString: Untagged
|
||||
@@ -1234,21 +717,6 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1455178665
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1455178660}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 717ba394b4fc8354db9479f2f858d521, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
mainCamera: {fileID: 0}
|
||||
model3D: {fileID: 1455178660}
|
||||
edgeSegments: 16
|
||||
--- !u!1 &1835604430
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1475,16 +943,62 @@ PolygonCollider2D:
|
||||
m_Paths:
|
||||
- []
|
||||
m_UseDelaunayMesh: 0
|
||||
--- !u!1 &2043251345
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2043251347}
|
||||
- component: {fileID: 2043251346}
|
||||
m_Layer: 0
|
||||
m_Name: ShadowColloderGenerator
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &2043251346
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2043251345}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 28f43899f7559ca4e915497eaf23cc4f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shadowCamera: {fileID: 282165414}
|
||||
shadowRT: {fileID: 8400000, guid: 3746a9ea25b5f084f963f36250ae89a2, type: 2}
|
||||
shadowThreshold: 0.3
|
||||
gridSize: 2
|
||||
simplifyTolerance: 1
|
||||
--- !u!4 &2043251347
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2043251345}
|
||||
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: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 354864582}
|
||||
- {fileID: 1371778128}
|
||||
- {fileID: 767553982}
|
||||
- {fileID: 488143182}
|
||||
- {fileID: 1283729764}
|
||||
- {fileID: 282165415}
|
||||
- {fileID: 1455178664}
|
||||
- {fileID: 507957221}
|
||||
- {fileID: 6388586}
|
||||
- {fileID: 2043251347}
|
||||
- {fileID: 911800377}
|
||||
|
||||
47
Assets/Scripts/Test/Light/ShadowCapture.cs
Normal file
47
Assets/Scripts/Test/Light/ShadowCapture.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
// ShadowCapture.cs
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
public class ShadowCapture : MonoBehaviour
|
||||
{
|
||||
public Light mainLight;
|
||||
public Camera shadowCamera;
|
||||
public RenderTexture shadowTexture;
|
||||
|
||||
private CommandBuffer commandBuffer;
|
||||
|
||||
void Start()
|
||||
{
|
||||
commandBuffer = new CommandBuffer();
|
||||
commandBuffer.name = "Shadow Capture";
|
||||
|
||||
//// <20><><EFBFBD><EFBFBD>Render Texture
|
||||
//shadowTexture = new RenderTexture(1024, 1024, 0, RenderTextureFormat.ARGB32);
|
||||
//shadowTexture.name = "Shadow Map";
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>Command Buffer
|
||||
commandBuffer.SetRenderTarget(shadowTexture);
|
||||
commandBuffer.ClearRenderTarget(true, true, Color.clear);
|
||||
|
||||
// ֻ<><D6BB>Ⱦ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
commandBuffer.SetGlobalColor("_ShadowColor", Color.black);
|
||||
|
||||
// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
shadowCamera.AddCommandBuffer(CameraEvent.BeforeForwardOpaque, commandBuffer);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Shader
|
||||
Shader.SetGlobalTexture("_CustomShadowMap", shadowTexture);
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
if (commandBuffer != null)
|
||||
{
|
||||
shadowCamera.RemoveCommandBuffer(CameraEvent.BeforeForwardOpaque, commandBuffer);
|
||||
commandBuffer.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Test/Light/ShadowCapture.cs.meta
Normal file
11
Assets/Scripts/Test/Light/ShadowCapture.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91b16d90959a0334da9eaebad7c79995
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -4,14 +4,11 @@ using System.Linq;
|
||||
|
||||
public class ShadowColliderGenerator : MonoBehaviour
|
||||
{
|
||||
[Header("References")]
|
||||
public Camera shadowCamera;
|
||||
public RenderTexture shadowRT;
|
||||
public PolygonCollider2D polygonCollider;
|
||||
|
||||
[Header("Settings")]
|
||||
[Range(0f, 1f)]
|
||||
public float shadowThreshold = 0.3f;
|
||||
public float shadowThreshold = 0.1f;
|
||||
public int gridSize = 2; // 网格大小,越小越精确
|
||||
public float simplifyTolerance = 1f;
|
||||
|
||||
@@ -19,9 +16,6 @@ public class ShadowColliderGenerator : MonoBehaviour
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (polygonCollider == null)
|
||||
polygonCollider = GetComponent<PolygonCollider2D>();
|
||||
|
||||
processedTexture = new Texture2D(shadowRT.width, shadowRT.height, TextureFormat.R8, false);
|
||||
GenerateCollider();
|
||||
}
|
||||
@@ -36,253 +30,411 @@ public class ShadowColliderGenerator : MonoBehaviour
|
||||
|
||||
[ContextMenu("Generate Collider")]
|
||||
public void GenerateCollider()
|
||||
{
|
||||
|
||||
ReadRenderTexture();
|
||||
|
||||
}
|
||||
void ReadRenderTexture()
|
||||
{
|
||||
if (shadowCamera == null || shadowRT == null) return;
|
||||
|
||||
// 渲染阴影
|
||||
shadowCamera.Render();
|
||||
|
||||
// 读取纹理
|
||||
RenderTexture.active = shadowRT;
|
||||
processedTexture.ReadPixels(new Rect(0, 0, shadowRT.width, shadowRT.height), 0, 0);
|
||||
processedTexture.Apply();
|
||||
RenderTexture.active = null;
|
||||
|
||||
// 生成轮廓
|
||||
List<Vector2> contour = GenerateContourFromTexture();
|
||||
|
||||
if (contour.Count > 2)
|
||||
Color[] pixels = processedTexture.GetPixels();
|
||||
float[,] grid = new float[shadowRT.width, shadowRT.height];
|
||||
for (int y = 0; y < shadowRT.height; y++)
|
||||
{
|
||||
List<Vector2> worldPoints = ConvertToWorldCoordinates(contour);
|
||||
polygonCollider.SetPath(0, worldPoints);
|
||||
Debug.Log($"Collider generated with {worldPoints.Count} points");
|
||||
}
|
||||
else
|
||||
{
|
||||
polygonCollider.pathCount = 0;
|
||||
Debug.Log("No contour generated");
|
||||
}
|
||||
}
|
||||
|
||||
List<Vector2> GenerateContourFromTexture()
|
||||
{
|
||||
int width = processedTexture.width;
|
||||
int height = processedTexture.height;
|
||||
|
||||
// 创建二值化网格
|
||||
bool[,] grid = CreateBinaryGrid(width, height);
|
||||
|
||||
// 找到所有边界点
|
||||
List<Vector2> boundaryPoints = FindBoundaryPoints(grid);
|
||||
|
||||
// 连接边界点形成轮廓
|
||||
List<Vector2> contour = ConnectBoundaryPoints(boundaryPoints);
|
||||
|
||||
return contour;
|
||||
}
|
||||
|
||||
bool[,] CreateBinaryGrid(int width, int height)
|
||||
{
|
||||
bool[,] grid = new bool[width / gridSize, height / gridSize];
|
||||
|
||||
for (int x = 0; x < grid.GetLength(0); x++)
|
||||
{
|
||||
for (int y = 0; y < grid.GetLength(1); y++)
|
||||
for (int x = 0; x < shadowRT.width; x++)
|
||||
{
|
||||
int texX = x * gridSize;
|
||||
int texY = y * gridSize;
|
||||
Color pixel = processedTexture.GetPixel(texX, texY);
|
||||
grid[x, y] = pixel.grayscale < shadowThreshold;
|
||||
// 只取R通道(因为是灰度图,RGB值相同)
|
||||
grid[x, y] = pixels[y * shadowRT.width + x].r;
|
||||
}
|
||||
}
|
||||
|
||||
return grid;
|
||||
Debug.Log($"{grid[0, shadowRT.height - 1]:F3}, {grid[shadowRT.width - 1, 0]:F3}");
|
||||
AnalyzeWithMarchingSquares(grid, shadowThreshold);
|
||||
}
|
||||
|
||||
List<Vector2> FindBoundaryPoints(bool[,] grid)
|
||||
void AnalyzeWithMarchingSquares(float[,] grid, float checkValue)
|
||||
{
|
||||
List<Vector2> boundaryPoints = new List<Vector2>();
|
||||
//List<Vector2> allEdgePoints = CollectAllEdgePoints(grid, checkValue);
|
||||
//List<Vector2> contour = ImprovedContourConnection(allEdgePoints);
|
||||
//UpdatePolygonCollider(allEdgePoints, grid.GetLength(0), grid.GetLength(1));
|
||||
|
||||
//Debug.Log("Marching Squares处理完成");
|
||||
|
||||
// 使用正确的轮廓跟踪
|
||||
int width = grid.GetLength(0);
|
||||
int height = grid.GetLength(1);
|
||||
|
||||
for (int x = 0; x < width; x++)
|
||||
// 使用正确的轮廓跟踪
|
||||
List<List<Vector2>> contours = GenerateContours(grid, checkValue, width, height);
|
||||
|
||||
// 过滤掉点太少的轮廓
|
||||
List<List<Vector2>> validContours = contours;
|
||||
//List<List<Vector2>> validContours = contours.Where(c => c.Count > 10).ToList();
|
||||
|
||||
Debug.Log($"生成 {contours.Count} 个轮廓,有效轮廓 {validContours.Count} 个");
|
||||
|
||||
// 显示每个轮廓的信息
|
||||
for (int i = 0; i < Mathf.Min(5, validContours.Count); i++) // 只显示前5个
|
||||
{
|
||||
for (int y = 0; y < height; y++)
|
||||
{
|
||||
if (grid[x, y])
|
||||
{
|
||||
// 检查是否是边界(有非阴影像素邻居)
|
||||
bool isBoundary = false;
|
||||
|
||||
// 检查4邻域
|
||||
if (x == 0 || !grid[x - 1, y]) isBoundary = true;
|
||||
else if (x == width - 1 || !grid[x + 1, y]) isBoundary = true;
|
||||
else if (y == 0 || !grid[x, y - 1]) isBoundary = true;
|
||||
else if (y == height - 1 || !grid[x, y + 1]) isBoundary = true;
|
||||
|
||||
if (isBoundary)
|
||||
{
|
||||
boundaryPoints.Add(new Vector2(x * gridSize, y * gridSize));
|
||||
}
|
||||
}
|
||||
}
|
||||
Debug.Log($"轮廓 {i}: {validContours[i].Count} 个点");
|
||||
}
|
||||
|
||||
Debug.Log($"Found {boundaryPoints.Count} boundary points");
|
||||
return boundaryPoints;
|
||||
// 使用所有有效轮廓创建碰撞体
|
||||
UpdatePolygonCollider(validContours, width, height);
|
||||
|
||||
Debug.Log("Marching Squares处理完成");
|
||||
}
|
||||
|
||||
List<Vector2> ConnectBoundaryPoints(List<Vector2> points)
|
||||
{
|
||||
if (points.Count < 3) return points;
|
||||
|
||||
List<Vector2> contour = new List<Vector2>();
|
||||
List<Vector2> remaining = new List<Vector2>(points);
|
||||
|
||||
// 找到最左边的点作为起点
|
||||
Vector2 start = remaining.OrderBy(p => p.x).First();
|
||||
contour.Add(start);
|
||||
remaining.Remove(start);
|
||||
|
||||
Vector2 current = start;
|
||||
Vector2 previousDirection = Vector2.right;
|
||||
|
||||
int maxIterations = points.Count * 2;
|
||||
int iterations = 0;
|
||||
|
||||
while (remaining.Count > 0 && iterations < maxIterations)
|
||||
{
|
||||
iterations++;
|
||||
|
||||
// 找到与当前方向最一致的下一个点
|
||||
float bestScore = float.MinValue;
|
||||
Vector2 bestPoint = Vector2.zero;
|
||||
int bestIndex = -1;
|
||||
|
||||
for (int i = 0; i < remaining.Count; i++)
|
||||
{
|
||||
Vector2 toPoint = (remaining[i] - current).normalized;
|
||||
float distance = Vector2.Distance(current, remaining[i]);
|
||||
|
||||
// 评分:方向一致性 + 距离权重
|
||||
float directionScore = Vector2.Dot(previousDirection, toPoint);
|
||||
float distanceScore = 1f / (distance + 0.1f);
|
||||
float totalScore = directionScore + distanceScore * 0.1f;
|
||||
|
||||
if (totalScore > bestScore && distance < 50f) // 距离限制
|
||||
{
|
||||
bestScore = totalScore;
|
||||
bestPoint = remaining[i];
|
||||
bestIndex = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (bestIndex >= 0)
|
||||
{
|
||||
previousDirection = (bestPoint - current).normalized;
|
||||
contour.Add(bestPoint);
|
||||
remaining.RemoveAt(bestIndex);
|
||||
current = bestPoint;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 确保轮廓闭合
|
||||
if (contour.Count > 2 && Vector2.Distance(contour[0], contour[contour.Count - 1]) > 30f)
|
||||
{
|
||||
contour.Add(contour[0]);
|
||||
}
|
||||
|
||||
// 简化轮廓
|
||||
contour = SimplifyContour(contour);
|
||||
|
||||
Debug.Log($"Connected {contour.Count} points into contour");
|
||||
return contour;
|
||||
}
|
||||
|
||||
List<Vector2> SimplifyContour(List<Vector2> contour)
|
||||
{
|
||||
if (contour.Count <= 3) return contour;
|
||||
|
||||
List<Vector2> simplified = new List<Vector2>();
|
||||
simplified.Add(contour[0]);
|
||||
|
||||
for (int i = 1; i < contour.Count - 1; i++)
|
||||
{
|
||||
// 如果角度变化太大,保留这个点
|
||||
if (i > 1)
|
||||
{
|
||||
Vector2 prevDir = (contour[i] - contour[i - 1]).normalized;
|
||||
Vector2 nextDir = (contour[i + 1] - contour[i]).normalized;
|
||||
float angle = Vector2.Angle(prevDir, nextDir);
|
||||
|
||||
if (angle > 30f) // 角度阈值
|
||||
{
|
||||
simplified.Add(contour[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
simplified.Add(contour[contour.Count - 1]);
|
||||
|
||||
return simplified;
|
||||
}
|
||||
|
||||
List<Vector2> ConvertToWorldCoordinates(List<Vector2> texturePoints)
|
||||
List<Vector2> ConvertToWorldCoordinates(List<Vector2> texturePoints, int textureWidth, int textureHeight)
|
||||
{
|
||||
List<Vector2> worldPoints = new List<Vector2>();
|
||||
|
||||
foreach (Vector2 texCoord in texturePoints)
|
||||
{
|
||||
Vector3 viewportPos = new Vector3(
|
||||
texCoord.x / processedTexture.width,
|
||||
texCoord.y / processedTexture.height,
|
||||
shadowCamera.nearClipPlane
|
||||
// 将纹理坐标归一化到 [0,1] 范围
|
||||
Vector2 normalizedCoord = new Vector2(
|
||||
texCoord.x / textureWidth,
|
||||
texCoord.y / textureHeight
|
||||
);
|
||||
|
||||
Vector3 worldPos = shadowCamera.ViewportToWorldPoint(viewportPos);
|
||||
worldPoints.Add(new Vector2(worldPos.x, worldPos.y));
|
||||
// 将归一化坐标转换到世界坐标
|
||||
// 假设墙的本地坐标范围是 [0,0] 到 [1,1]
|
||||
Vector2 worldPoint = normalizedCoord;
|
||||
|
||||
worldPoints.Add(worldPoint);
|
||||
}
|
||||
|
||||
return worldPoints;
|
||||
}
|
||||
|
||||
// 调试:显示边界点
|
||||
void OnDrawGizmosSelected()
|
||||
/// <summary>
|
||||
/// 创建或更新PolygonCollider2D(支持多个轮廓)
|
||||
/// </summary>
|
||||
void UpdatePolygonCollider(List<List<Vector2>> contours, int textureWidth, int textureHeight)
|
||||
{
|
||||
if (processedTexture == null) return;
|
||||
|
||||
Gizmos.color = Color.red;
|
||||
|
||||
// 显示边界点
|
||||
bool[,] grid = CreateBinaryGrid(processedTexture.width, processedTexture.height);
|
||||
List<Vector2> boundaryPoints = FindBoundaryPoints(grid);
|
||||
|
||||
foreach (Vector2 point in boundaryPoints)
|
||||
// 获取或添加PolygonCollider2D组件
|
||||
PolygonCollider2D polygonCollider = GetComponent<PolygonCollider2D>();
|
||||
if (polygonCollider == null)
|
||||
{
|
||||
Vector3 viewportPos = new Vector3(
|
||||
point.x / processedTexture.width,
|
||||
point.y / processedTexture.height,
|
||||
shadowCamera.nearClipPlane
|
||||
);
|
||||
Vector3 worldPos = shadowCamera.ViewportToWorldPoint(viewportPos);
|
||||
Gizmos.DrawSphere(worldPos, 0.02f);
|
||||
polygonCollider = gameObject.AddComponent<PolygonCollider2D>();
|
||||
Debug.Log("添加PolygonCollider2D组件");
|
||||
}
|
||||
|
||||
// 显示碰撞器轮廓
|
||||
if (polygonCollider != null && polygonCollider.pathCount > 0)
|
||||
if (contours.Count > 0)
|
||||
{
|
||||
Gizmos.color = Color.green;
|
||||
Vector2[] path = polygonCollider.GetPath(0);
|
||||
for (int i = 0; i < path.Length; i++)
|
||||
// 设置轮廓数量
|
||||
polygonCollider.pathCount = contours.Count;
|
||||
|
||||
int totalPoints = 0;
|
||||
|
||||
for (int i = 0; i < contours.Count; i++)
|
||||
{
|
||||
Vector3 start = path[i];
|
||||
Vector3 end = path[(i + 1) % path.Length];
|
||||
Gizmos.DrawLine(start, end);
|
||||
if (contours[i].Count > 2)
|
||||
{
|
||||
// 转换坐标
|
||||
List<Vector2> worldPoints = ConvertToWorldCoordinates(contours[i], textureWidth, textureHeight);
|
||||
|
||||
// 设置当前轮廓路径
|
||||
polygonCollider.SetPath(i, worldPoints);
|
||||
|
||||
totalPoints += worldPoints.Count;
|
||||
|
||||
Debug.Log($"轮廓 {i}: {worldPoints.Count} 个点");
|
||||
}
|
||||
else
|
||||
{
|
||||
// 点太少,设置空路径
|
||||
polygonCollider.SetPath(i, new Vector2[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"碰撞体创建成功: {contours.Count} 个轮廓,共 {totalPoints} 个顶点");
|
||||
|
||||
// 显示碰撞体边界信息
|
||||
Bounds bounds = polygonCollider.bounds;
|
||||
Debug.Log($"碰撞体边界: 中心({bounds.center.x:F2}, {bounds.center.y:F2}), 大小({bounds.size.x:F2}, {bounds.size.y:F2})");
|
||||
}
|
||||
else
|
||||
{
|
||||
polygonCollider.pathCount = 0;
|
||||
Debug.Log("没有有效轮廓,清除碰撞体");
|
||||
}
|
||||
}
|
||||
List<Vector2> ImprovedContourConnection(List<Vector2> points)
|
||||
{
|
||||
if (points.Count < 3)
|
||||
{
|
||||
Debug.Log("点太少,无法形成轮廓");
|
||||
return new List<Vector2>();
|
||||
}
|
||||
|
||||
// 方法1:直接返回原始点(按细胞顺序)
|
||||
Debug.Log($"直接返回 {points.Count} 个点(未排序)");
|
||||
return points;
|
||||
|
||||
// 或者方法2:简单的按Y然后X排序
|
||||
// List<Vector2> sorted = points.OrderBy(p => p.y).ThenBy(p => p.x).ToList();
|
||||
// return sorted;
|
||||
}
|
||||
|
||||
List<Vector2> CollectAllEdgePoints(float[,] grid, float checkValue)
|
||||
{
|
||||
List<Vector2> allEdgePoints = new List<Vector2>();
|
||||
for (int y = 0; y < grid.GetLength(1) - 1; y++)
|
||||
{
|
||||
for (int x = 0; x < grid.GetLength(0) - 1; x++)
|
||||
{
|
||||
int cellstate = CalculateCellState(x, y, grid, checkValue);
|
||||
if (cellstate != 0 && cellstate != 15)
|
||||
{
|
||||
List<Vector2> edgePoints = FindEdgePointsInCell(x, y, cellstate, grid, checkValue);
|
||||
allEdgePoints.AddRange(edgePoints);
|
||||
}
|
||||
}
|
||||
}
|
||||
Debug.Log($"收集到 {allEdgePoints.Count} 个等值点");
|
||||
|
||||
// 显示前10个点作为示例
|
||||
for (int i = 0; i < Mathf.Min(10, allEdgePoints.Count); i++)
|
||||
{
|
||||
Debug.Log($"点 {i}: ({allEdgePoints[i].x:F2}, {allEdgePoints[i].y:F2})");
|
||||
}
|
||||
return allEdgePoints;
|
||||
}
|
||||
List<Vector2> FindEdgePointsInCell(int x, int y, int cellState, float[,] grid, float checkValue)
|
||||
{
|
||||
List<Vector2> edges = new List<Vector2>();
|
||||
bool p0 = (cellState & 1) != 0;
|
||||
bool p1 = (cellState & 2) != 0;
|
||||
bool p2 = (cellState & 4) != 0;
|
||||
bool p3 = (cellState & 8) != 0;
|
||||
if (p0 != p1)
|
||||
{
|
||||
Vector2 point = CalculateEdgePoint(x, y,CellEdge.Bottom, grid, checkValue);
|
||||
edges.Add(point);
|
||||
}
|
||||
if (p1 != p2)
|
||||
{
|
||||
Vector2 point = CalculateEdgePoint(x, y, CellEdge.Right, grid, checkValue);
|
||||
edges.Add(point);
|
||||
}
|
||||
if (p2 != p3)
|
||||
{
|
||||
Vector2 point = CalculateEdgePoint(x, y, CellEdge.Top, grid, checkValue);
|
||||
edges.Add(point);
|
||||
}
|
||||
if (p3 != p0)
|
||||
{
|
||||
Vector2 point = CalculateEdgePoint(x, y, CellEdge.Left, grid, checkValue);
|
||||
edges.Add(point);
|
||||
}
|
||||
return edges;
|
||||
}
|
||||
Vector2 CalculateEdgePoint(int x, int y, CellEdge cellEdge, float[,] grid, float checkValue)
|
||||
{
|
||||
Vector2 p1 = Vector2.zero, p2 = Vector2.zero;
|
||||
float v1 = 0, v2 = 0;
|
||||
switch (cellEdge)
|
||||
{
|
||||
case CellEdge.Bottom:
|
||||
p1 = new Vector2(x, y);
|
||||
p2 = new Vector2(x+1, y);
|
||||
v1 = grid[x, y];
|
||||
v2 = grid[x+1, y];
|
||||
break;
|
||||
case CellEdge.Right:
|
||||
p1 = new Vector2(x+1, y);
|
||||
p2 = new Vector2(x + 1, y+1);
|
||||
v1 = grid[x + 1, y];
|
||||
v2 = grid[x + 1, y + 1];
|
||||
break;
|
||||
case CellEdge.Top:
|
||||
p1 = new Vector2(x + 1, y + 1);
|
||||
p2 = new Vector2(x , y + 1);
|
||||
v1 = grid[x + 1, y + 1];
|
||||
v2 = grid[x, y + 1];
|
||||
break;
|
||||
case CellEdge.Left:
|
||||
p1 = new Vector2(x, y + 1);
|
||||
p2 = new Vector2(x , y);
|
||||
v1 = grid[x, y + 1];
|
||||
v2 = grid[x , y];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
float t = (checkValue-v1)/(v2 - v1);
|
||||
return Vector2.Lerp(p1, p2, t);
|
||||
}
|
||||
int CalculateCellState(int x,int y, float[,] grid,float checkValue )
|
||||
{
|
||||
int state = 0;
|
||||
if (grid[x, y] <= checkValue) state |= 1;
|
||||
if (grid[x+1, y] <= checkValue) state |= 2;
|
||||
if (grid[x+1, y+1] <= checkValue) state |= 4;
|
||||
if (grid[x, y + 1] <= checkValue) state |= 8;
|
||||
return state;
|
||||
}
|
||||
/// <summary>
|
||||
/// 正确的Marching Squares轮廓生成(带方向跟踪)
|
||||
/// </summary>
|
||||
List<List<Vector2>> GenerateContours(float[,] grid, float isoLevel, int width, int height)
|
||||
{
|
||||
List<List<Vector2>> contours = new List<List<Vector2>>();
|
||||
bool[,] visited = new bool[width - 1, height - 1];
|
||||
|
||||
for (int y = 0; y < height - 1; y++)
|
||||
{
|
||||
for (int x = 0; x < width - 1; x++)
|
||||
{
|
||||
if (visited[x, y]) continue;
|
||||
|
||||
int cellState = CalculateCellState(x, y, grid, isoLevel);
|
||||
|
||||
// 只处理有边界穿过的细胞
|
||||
if (cellState > 0 && cellState < 15)
|
||||
{
|
||||
List<Vector2> contour = TraceContour(x, y, grid, isoLevel, width, height, visited);
|
||||
if (contour != null && contour.Count > 2)
|
||||
{
|
||||
contours.Add(contour);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return contours;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 跟踪一个轮廓(按行进方向)
|
||||
/// </summary>
|
||||
List<Vector2> TraceContour(int startX, int startY, float[,] grid, float isoLevel, int width, int height, bool[,] visited)
|
||||
{
|
||||
List<Vector2> contour = new List<Vector2>();
|
||||
int x = startX;
|
||||
int y = startY;
|
||||
int entryEdge = 0; // 进入边,从下边开始
|
||||
|
||||
do
|
||||
{
|
||||
if (x < 0 || x >= width - 1 || y < 0 || y >= height - 1) break;
|
||||
|
||||
visited[x, y] = true;
|
||||
int cellState = CalculateCellState(x, y, grid, isoLevel);
|
||||
|
||||
// 根据细胞状态和进入边决定出口边
|
||||
int exitEdge = GetExitEdge(cellState, entryEdge);
|
||||
|
||||
if (exitEdge == -1) break;
|
||||
|
||||
// 计算当前边的等值点
|
||||
Vector2 point = CalculateEdgePoint(x, y, (CellEdge)exitEdge, grid, isoLevel);
|
||||
contour.Add(point);
|
||||
|
||||
// 移动到下一个细胞
|
||||
switch (exitEdge)
|
||||
{
|
||||
case 0: // 从下边出,向下移动
|
||||
y--;
|
||||
entryEdge = 2; // 进入上边
|
||||
break;
|
||||
case 1: // 从右边出,向右移动
|
||||
x++;
|
||||
entryEdge = 3; // 进入左边
|
||||
break;
|
||||
case 2: // 从上边出,向上移动
|
||||
y++;
|
||||
entryEdge = 0; // 进入下边
|
||||
break;
|
||||
case 3: // 从左边出,向左移动
|
||||
x--;
|
||||
entryEdge = 1; // 进入右边
|
||||
break;
|
||||
}
|
||||
|
||||
} while (!(x == startX && y == startY) && contour.Count < 1000);
|
||||
|
||||
return contour;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据细胞状态和进入边获取出口边
|
||||
/// </summary>
|
||||
int GetExitEdge(int cellState, int entryEdge)
|
||||
{
|
||||
// 简化的查找表 [细胞状态, 进入边] -> 出口边
|
||||
// 这是一个简化版本,实际需要完整的16x4查找表
|
||||
switch (cellState)
|
||||
{
|
||||
case 1: // 0001
|
||||
case 14: // 1110
|
||||
return (entryEdge == 0) ? 3 : 0;
|
||||
case 2: // 0010
|
||||
case 13: // 1101
|
||||
return (entryEdge == 1) ? 0 : 1;
|
||||
case 4: // 0100
|
||||
case 11: // 1011
|
||||
return (entryEdge == 2) ? 1 : 2;
|
||||
case 8: // 1000
|
||||
case 7: // 0111
|
||||
return (entryEdge == 3) ? 2 : 3;
|
||||
case 3: // 0011
|
||||
case 12: // 1100
|
||||
return (entryEdge == 0) ? 1 : 0;
|
||||
case 6: // 0110
|
||||
case 9: // 1001
|
||||
return (entryEdge == 1) ? 2 : 1;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
// 在类末尾添加Gizmos方法(支持多个轮廓)
|
||||
void OnDrawGizmosSelected()
|
||||
{
|
||||
PolygonCollider2D polygonCollider = GetComponent<PolygonCollider2D>();
|
||||
if (polygonCollider != null && polygonCollider.pathCount > 0)
|
||||
{
|
||||
for (int pathIndex = 0; pathIndex < polygonCollider.pathCount; pathIndex++)
|
||||
{
|
||||
Vector2[] path = polygonCollider.GetPath(pathIndex);
|
||||
|
||||
if (path.Length < 3) continue;
|
||||
|
||||
// 每个轮廓用不同颜色
|
||||
Color[] colors = { Color.green, Color.blue, Color.yellow, Color.cyan, Color.magenta };
|
||||
Gizmos.color = colors[pathIndex % colors.Length];
|
||||
|
||||
// 绘制轮廓线
|
||||
for (int i = 0; i < path.Length; i++)
|
||||
{
|
||||
Vector3 start = transform.TransformPoint(path[i]);
|
||||
Vector3 end = transform.TransformPoint(path[(i + 1) % path.Length]);
|
||||
Gizmos.DrawLine(start, end);
|
||||
}
|
||||
|
||||
// 显示顶点
|
||||
Gizmos.color = Color.red;
|
||||
foreach (Vector2 point in path)
|
||||
{
|
||||
Vector3 worldPoint = transform.TransformPoint(point);
|
||||
Gizmos.DrawSphere(worldPoint, 0.005f);
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"Gizmos显示 {polygonCollider.pathCount} 个轮廓");
|
||||
}
|
||||
}
|
||||
enum CellEdge
|
||||
{
|
||||
Bottom = 0,
|
||||
Right = 1,
|
||||
Top = 2,
|
||||
Left = 3
|
||||
}
|
||||
}
|
||||
40
Assets/Scripts/Test/Light/Test.renderTexture
Normal file
40
Assets/Scripts/Test/Light/Test.renderTexture
Normal file
@@ -0,0 +1,40 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!84 &8400000
|
||||
RenderTexture:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Test
|
||||
m_ImageContentsHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_ForcedFallbackFormat: 4
|
||||
m_DownscaleFallback: 0
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 5
|
||||
m_Width: 256
|
||||
m_Height: 256
|
||||
m_AntiAliasing: 1
|
||||
m_MipCount: -1
|
||||
m_DepthStencilFormat: 94
|
||||
m_ColorFormat: 8
|
||||
m_MipMap: 0
|
||||
m_GenerateMips: 1
|
||||
m_SRGB: 0
|
||||
m_UseDynamicScale: 0
|
||||
m_BindMS: 0
|
||||
m_EnableCompatibleFormat: 1
|
||||
m_EnableRandomWrite: 0
|
||||
m_TextureSettings:
|
||||
serializedVersion: 2
|
||||
m_FilterMode: 1
|
||||
m_Aniso: 1
|
||||
m_MipBias: 0
|
||||
m_WrapU: 1
|
||||
m_WrapV: 1
|
||||
m_WrapW: 1
|
||||
m_Dimension: 2
|
||||
m_VolumeDepth: 1
|
||||
m_ShadowSamplingMode: 2
|
||||
8
Assets/Scripts/Test/Light/Test.renderTexture.meta
Normal file
8
Assets/Scripts/Test/Light/Test.renderTexture.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e448e9d777c74fd44b39265dbda970d0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 8400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -21,6 +21,9 @@ EditorUserSettings:
|
||||
value: 5104055750510d5a0b5f547712205d44124f1d727a7d70657d7b1f32b4b66639
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-5:
|
||||
value: 5b04565703015b0d5d5f5c7047270f4446161e7a7d2d22362b2a4d66b4e26c6e
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-6:
|
||||
value: 5602500350545e5a540a0f7740210744444f1b2c7f7c73362f2f4962e0b7316e
|
||||
flags: 0
|
||||
vcSharedLogLevel:
|
||||
|
||||
@@ -15,11 +15,11 @@ MonoBehaviour:
|
||||
m_PixelRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 43
|
||||
width: 2560
|
||||
height: 1349
|
||||
y: 43.2
|
||||
width: 2048
|
||||
height: 1188.8
|
||||
m_ShowMode: 4
|
||||
m_Title: Inspector
|
||||
m_Title: Hierarchy
|
||||
m_RootView: {fileID: 2}
|
||||
m_MinSize: {x: 875, y: 721}
|
||||
m_MaxSize: {x: 10000, y: 10000}
|
||||
@@ -44,8 +44,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2560
|
||||
height: 1349
|
||||
width: 2048
|
||||
height: 1188.8
|
||||
m_MinSize: {x: 875, y: 300}
|
||||
m_MaxSize: {x: 10000, y: 10000}
|
||||
m_UseTopView: 1
|
||||
@@ -69,7 +69,7 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2560
|
||||
width: 2048
|
||||
height: 30
|
||||
m_MinSize: {x: 0, y: 0}
|
||||
m_MaxSize: {x: 0, y: 0}
|
||||
@@ -90,8 +90,8 @@ MonoBehaviour:
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 1329
|
||||
width: 2560
|
||||
y: 1168.8
|
||||
width: 2048
|
||||
height: 20
|
||||
m_MinSize: {x: 0, y: 0}
|
||||
m_MaxSize: {x: 0, y: 0}
|
||||
@@ -114,8 +114,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 30
|
||||
width: 2560
|
||||
height: 1299
|
||||
width: 2048
|
||||
height: 1138.8
|
||||
m_MinSize: {x: 300, y: 100}
|
||||
m_MaxSize: {x: 24288, y: 16192}
|
||||
vertical: 0
|
||||
@@ -140,8 +140,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1877
|
||||
height: 1299
|
||||
width: 1501.6
|
||||
height: 1138.8
|
||||
m_MinSize: {x: 200, y: 100}
|
||||
m_MaxSize: {x: 16192, y: 16192}
|
||||
vertical: 1
|
||||
@@ -166,8 +166,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1877
|
||||
height: 865
|
||||
width: 1501.6
|
||||
height: 758.4
|
||||
m_MinSize: {x: 200, y: 50}
|
||||
m_MaxSize: {x: 16192, y: 8096}
|
||||
vertical: 0
|
||||
@@ -190,8 +190,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 407
|
||||
height: 865
|
||||
width: 325.6
|
||||
height: 758.4
|
||||
m_MinSize: {x: 201, y: 221}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 13}
|
||||
@@ -214,10 +214,10 @@ MonoBehaviour:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 407
|
||||
x: 325.6
|
||||
y: 0
|
||||
width: 1470
|
||||
height: 865
|
||||
width: 1176
|
||||
height: 758.4
|
||||
m_MinSize: {x: 202, y: 221}
|
||||
m_MaxSize: {x: 4002, y: 4021}
|
||||
m_ActualView: {fileID: 14}
|
||||
@@ -241,26 +241,26 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 1
|
||||
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: ConsoleWindow
|
||||
m_Name: ProjectBrowser
|
||||
m_EditorClassIdentifier:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 865
|
||||
width: 1877
|
||||
height: 434
|
||||
m_MinSize: {x: 101, y: 121}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 12}
|
||||
y: 758.4
|
||||
width: 1501.6
|
||||
height: 380.40002
|
||||
m_MinSize: {x: 231, y: 271}
|
||||
m_MaxSize: {x: 10001, y: 10021}
|
||||
m_ActualView: {fileID: 21}
|
||||
m_Panes:
|
||||
- {fileID: 21}
|
||||
- {fileID: 22}
|
||||
- {fileID: 23}
|
||||
- {fileID: 12}
|
||||
- {fileID: 24}
|
||||
m_Selected: 3
|
||||
m_LastSelected: 0
|
||||
m_Selected: 0
|
||||
m_LastSelected: 3
|
||||
--- !u!114 &11
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@@ -276,12 +276,12 @@ MonoBehaviour:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 1877
|
||||
x: 1501.6
|
||||
y: 0
|
||||
width: 683
|
||||
height: 1299
|
||||
m_MinSize: {x: 276, y: 121}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
width: 546.4
|
||||
height: 1138.8
|
||||
m_MinSize: {x: 275, y: 100}
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_ActualView: {fileID: 25}
|
||||
m_Panes:
|
||||
- {fileID: 25}
|
||||
@@ -304,15 +304,15 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Console
|
||||
m_Image: {fileID: -4327648978806127646, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 938
|
||||
width: 1876
|
||||
height: 413
|
||||
y: 832
|
||||
width: 1500.6
|
||||
height: 359.40002
|
||||
m_SerializedDataModeController:
|
||||
m_DataMode: 0
|
||||
m_PreferredDataMode: 0
|
||||
@@ -339,15 +339,15 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Hierarchy
|
||||
m_Image: {fileID: 7966133145522015247, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 73
|
||||
width: 406
|
||||
height: 844
|
||||
y: 73.6
|
||||
width: 324.6
|
||||
height: 737.4
|
||||
m_SerializedDataModeController:
|
||||
m_DataMode: 0
|
||||
m_PreferredDataMode: 0
|
||||
@@ -363,7 +363,7 @@ MonoBehaviour:
|
||||
scrollPos: {x: 0, y: 0}
|
||||
m_SelectedIDs:
|
||||
m_LastClickedID: 0
|
||||
m_ExpandedIDs: 08fbffffe27c0000
|
||||
m_ExpandedIDs: fcfaffff
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@@ -403,15 +403,15 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Scene
|
||||
m_Image: {fileID: 2593428753322112591, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 407
|
||||
y: 73
|
||||
width: 1468
|
||||
height: 844
|
||||
x: 325.6
|
||||
y: 73.6
|
||||
width: 1174
|
||||
height: 737.4
|
||||
m_SerializedDataModeController:
|
||||
m_DataMode: 0
|
||||
m_PreferredDataMode: 0
|
||||
@@ -783,9 +783,9 @@ MonoBehaviour:
|
||||
m_PlayAudio: 0
|
||||
m_AudioPlay: 0
|
||||
m_Position:
|
||||
m_Target: {x: -0.6338736, y: 2.8792658, z: 9.9932}
|
||||
m_Target: {x: 0.57438695, y: 0.61978495, z: 0.0037172732}
|
||||
speed: 2
|
||||
m_Value: {x: -0.6338736, y: 2.8792658, z: 9.9932}
|
||||
m_Value: {x: 0.57438695, y: 0.61978495, z: 0.0037172732}
|
||||
m_RenderMode: 0
|
||||
m_CameraMode:
|
||||
drawMode: 0
|
||||
@@ -831,13 +831,13 @@ MonoBehaviour:
|
||||
m_GridAxis: 1
|
||||
m_gridOpacity: 0.5
|
||||
m_Rotation:
|
||||
m_Target: {x: 0.1730932, y: 0.018612249, z: -0.0032754778, w: 0.98472977}
|
||||
m_Target: {x: 0.10836062, y: 0.025340052, z: -0.002800803, w: 0.99380815}
|
||||
speed: 2
|
||||
m_Value: {x: 0.17309225, y: 0.018612146, z: -0.0032754599, w: 0.98472434}
|
||||
m_Value: {x: 0.1083581, y: 0.025339464, z: -0.0028007377, w: 0.993785}
|
||||
m_Size:
|
||||
m_Target: 8.308297
|
||||
m_Target: 0.6089797
|
||||
speed: 2
|
||||
m_Value: 8.308297
|
||||
m_Value: 0.5827557
|
||||
m_Ortho:
|
||||
m_Target: 0
|
||||
speed: 2
|
||||
@@ -878,15 +878,15 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Game
|
||||
m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 407
|
||||
y: 73
|
||||
width: 1468
|
||||
height: 844
|
||||
x: 325.6
|
||||
y: 73.6
|
||||
width: 1174
|
||||
height: 737.4
|
||||
m_SerializedDataModeController:
|
||||
m_DataMode: 0
|
||||
m_PreferredDataMode: 0
|
||||
@@ -918,10 +918,10 @@ MonoBehaviour:
|
||||
m_VRangeLocked: 0
|
||||
hZoomLockedByDefault: 0
|
||||
vZoomLockedByDefault: 0
|
||||
m_HBaseRangeMin: -1280
|
||||
m_HBaseRangeMax: 1280
|
||||
m_VBaseRangeMin: -720
|
||||
m_VBaseRangeMax: 720
|
||||
m_HBaseRangeMin: -1024
|
||||
m_HBaseRangeMax: 1024
|
||||
m_VBaseRangeMin: -576
|
||||
m_VBaseRangeMax: 576
|
||||
m_HAllowExceedBaseRangeMin: 1
|
||||
m_HAllowExceedBaseRangeMax: 1
|
||||
m_VAllowExceedBaseRangeMin: 1
|
||||
@@ -939,23 +939,23 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 21
|
||||
width: 1468
|
||||
height: 823
|
||||
m_Scale: {x: 0.5715278, y: 0.5715278}
|
||||
m_Translation: {x: 733.99994, y: 411.5}
|
||||
width: 1174
|
||||
height: 716.4
|
||||
m_Scale: {x: 0.5732422, y: 0.5732422}
|
||||
m_Translation: {x: 587, y: 358.2}
|
||||
m_MarginLeft: 0
|
||||
m_MarginRight: 0
|
||||
m_MarginTop: 0
|
||||
m_MarginBottom: 0
|
||||
m_LastShownAreaInsideMargins:
|
||||
serializedVersion: 2
|
||||
x: -1284.277
|
||||
y: -720
|
||||
width: 2568.554
|
||||
height: 1440
|
||||
x: -1024
|
||||
y: -624.8668
|
||||
width: 2048
|
||||
height: 1249.7336
|
||||
m_MinimalGUI: 1
|
||||
m_defaultScale: 0.5715278
|
||||
m_LastWindowPixelSize: {x: 1468, y: 844}
|
||||
m_defaultScale: 0.5732422
|
||||
m_LastWindowPixelSize: {x: 1467.5, y: 921.75}
|
||||
m_ClearInEditMode: 1
|
||||
m_NoCameraWarning: 1
|
||||
m_LowResolutionForAspectRatios: 01000001000000000000
|
||||
@@ -978,7 +978,7 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Package Manager
|
||||
m_Image: {fileID: -2824328813065806953, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: 5076950121296946556, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
@@ -1117,7 +1117,7 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Asset Store
|
||||
m_Image: {fileID: -8693916549880196297, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -7444545952099596278, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
@@ -1152,15 +1152,15 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 10000, y: 10000}
|
||||
m_TitleContent:
|
||||
m_Text: Project
|
||||
m_Image: {fileID: -5467254957812901981, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 938
|
||||
width: 1876
|
||||
height: 413
|
||||
y: 832
|
||||
width: 1500.6
|
||||
height: 359.40002
|
||||
m_SerializedDataModeController:
|
||||
m_DataMode: 0
|
||||
m_PreferredDataMode: 0
|
||||
@@ -1182,7 +1182,7 @@ MonoBehaviour:
|
||||
m_SkipHidden: 0
|
||||
m_SearchArea: 1
|
||||
m_Folders:
|
||||
- Assets/Scripts/Test/Light
|
||||
- Assets
|
||||
m_Globs: []
|
||||
m_OriginalText:
|
||||
m_ImportLogFlags: 0
|
||||
@@ -1190,16 +1190,16 @@ MonoBehaviour:
|
||||
m_ViewMode: 1
|
||||
m_StartGridSize: 16
|
||||
m_LastFolders:
|
||||
- Assets/Scripts/Test/Light
|
||||
- Assets
|
||||
m_LastFoldersGridSize: 16
|
||||
m_LastProjectPath: C:\UnityProject\BlueArchiveMiniGame
|
||||
m_LastProjectPath: D:\UnityProject\BlueArchiveMiniGame
|
||||
m_LockTracker:
|
||||
m_IsLocked: 0
|
||||
m_FolderTreeState:
|
||||
scrollPos: {x: 0, y: 27}
|
||||
m_SelectedIDs: ce7f0000
|
||||
m_LastClickedID: 32718
|
||||
m_ExpandedIDs: 00000000c47d0000c67d0000c87d0000ca7d0000cc7d0000ce7d0000d07d0000c47f0000ce7f000000ca9a3b
|
||||
m_SelectedIDs: ba7d0000
|
||||
m_LastClickedID: 32186
|
||||
m_ExpandedIDs: 00000000ba7d000000ca9a3bffffff7f
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@@ -1227,7 +1227,7 @@ MonoBehaviour:
|
||||
scrollPos: {x: 0, y: 0}
|
||||
m_SelectedIDs:
|
||||
m_LastClickedID: 0
|
||||
m_ExpandedIDs: 00000000c47d0000c67d0000c87d0000ca7d0000cc7d0000ce7d0000d07d0000
|
||||
m_ExpandedIDs: 00000000ba7d0000
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@@ -1299,7 +1299,7 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Animator
|
||||
m_Image: {fileID: -1673928668082335149, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: 1711060831702674872, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
@@ -1423,7 +1423,7 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Animation
|
||||
m_Image: {fileID: -8166618308981325432, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -3237396543322336831, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
@@ -1444,7 +1444,7 @@ MonoBehaviour:
|
||||
m_OverlaysVisible: 1
|
||||
m_LockTracker:
|
||||
m_IsLocked: 0
|
||||
m_LastSelectedObjectID: -21542028
|
||||
m_LastSelectedObjectID: 32004
|
||||
--- !u!114 &24
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@@ -1461,7 +1461,7 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Audio Mixer
|
||||
m_Image: {fileID: 2344599766593239149, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -3283902137440876849, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
@@ -1644,15 +1644,15 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Inspector
|
||||
m_Image: {fileID: -2667387946076563598, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 1877
|
||||
y: 73
|
||||
width: 682
|
||||
height: 1278
|
||||
x: 1501.6
|
||||
y: 73.6
|
||||
width: 545.4
|
||||
height: 1117.8
|
||||
m_SerializedDataModeController:
|
||||
m_DataMode: 0
|
||||
m_PreferredDataMode: 0
|
||||
@@ -1692,7 +1692,7 @@ MonoBehaviour:
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Lighting
|
||||
m_Image: {fileID: -1347227620855488341, guid: 0000000000000000d000000000000000,
|
||||
m_Image: {fileID: -1477008817101679558, guid: 0000000000000000d000000000000000,
|
||||
type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
|
||||
Reference in New Issue
Block a user