爆炸图

This commit is contained in:
taosuqi 2025-10-15 14:13:23 +08:00
parent 33426ea7e4
commit a20712d745
12 changed files with 4539 additions and 2 deletions

View File

@ -130,6 +130,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 11
@ -178,10 +186,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (11)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &121330235 stripped
@ -317,6 +337,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 7
@ -365,10 +393,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (7)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &200709146 stripped
@ -461,6 +501,81 @@ PrefabInstance:
objectReference: {fileID: 2100000, guid: 4cb3b4baba1b9314d91ec2dc36a059b1, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: aaaf405b4e7064c458843bc7e1c7387c, type: 3}
--- !u!1 &379453961
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 379453962}
- component: {fileID: 379453964}
m_Layer: 6
m_Name: "\u524D\u94F2\u4FEF\u89C6\u89D2Camera"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &379453962
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 379453961}
m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5}
m_LocalPosition: {x: -1.61, y: 3.95, z: -0.04}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1630551042}
m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0}
--- !u!20 &379453964
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 379453961}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 1
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 192
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1001 &504022260
PrefabInstance:
m_ObjectHideFlags: 0
@ -529,6 +644,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 5
@ -577,10 +700,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (5)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &573852282 stripped
@ -595,6 +730,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 6
@ -643,10 +786,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (6)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &616871468 stripped
@ -726,6 +881,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 14
@ -774,10 +937,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (14)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &655082612 stripped
@ -854,6 +1029,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 9
@ -902,10 +1085,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (9)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &662978133 stripped
@ -1108,6 +1303,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 148427625, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 273327225, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 502047193, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: _forks
value:
@ -1140,6 +1343,18 @@ PrefabInstance:
propertyPath: handbrakeDriftMultiplier
value: 1
objectReference: {fileID: 0}
- target: {fileID: 729658220, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 901333271, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1858645378, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 261786959625234688, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_RootOrder
value: 9
@ -1154,7 +1369,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 261786959625234688, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_LocalPosition.z
value: 417.08
value: 418.44
objectReference: {fileID: 0}
- target: {fileID: 261786959625234688, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_LocalRotation.w
@ -1184,14 +1399,118 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 352317585573254743, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 642287924342879162, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Name
value: Prometheus
objectReference: {fileID: 0}
- target: {fileID: 642287924342879162, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 919132148237569432, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 934883528070179459, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1017544330230184320, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1025541434198643357, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1432273449035489855, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1566616598459011525, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2001459980240962088, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2077481708272809950, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2527180926009198364, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2995890491081814695, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3386343362015136015, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3433570107035258848, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 4402756320705968393, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 4402756320984974861, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 5209977923865558690, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 5911806796816403545, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 6204759407096980703, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 7045468751210077381, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 7045468751846977027, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 7699166564369075183, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_LocalPosition.y
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8557483882129953539, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 8649133034589738184, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 8651759335767387333, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 8985419621332640404, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
- target: {fileID: 9124702250907927501, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
propertyPath: m_Layer
value: 6
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
--- !u!1 &802197993
@ -1339,7 +1658,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 840090813}
m_Layer: 0
m_Layer: 7
m_Name: "\u8D27\u7269"
m_TagString: Untagged
m_Icon: {fileID: 0}
@ -1480,6 +1799,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 0
@ -1528,10 +1855,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1110228289 stripped
@ -1546,6 +1885,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 3
@ -1594,10 +1941,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (3)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1152814855 stripped
@ -1612,6 +1971,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 2
@ -1660,10 +2027,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (2)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1161960534 stripped
@ -1678,6 +2057,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 1
@ -1726,10 +2113,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (1)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1168498951 stripped
@ -2095,6 +2494,81 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1405273288
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1405273289}
- component: {fileID: 1405273291}
m_Layer: 6
m_Name: "\u524D\u94F2\u89C6\u89D2\u4FA7\u89C6\u89D2Camera"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1405273289
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1405273288}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.58, y: 0.98, z: -2.14}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1630551042}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &1405273291
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1405273288}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 1
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 192
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &1427108915
GameObject:
m_ObjectHideFlags: 0
@ -2195,6 +2669,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 8
@ -2243,10 +2725,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (8)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1455550066 stripped
@ -2360,6 +2854,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 12
@ -2408,10 +2910,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (12)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1609947174 stripped
@ -2419,6 +2933,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
m_PrefabInstance: {fileID: 1609947173}
m_PrefabAsset: {fileID: 0}
--- !u!4 &1630551042 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 543450652511557410, guid: 79d0ca8b77e301442afdb49f102e8aed, type: 3}
m_PrefabInstance: {fileID: 773153873}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1822101527
GameObject:
m_ObjectHideFlags: 0
@ -2510,6 +3029,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 13
@ -2558,10 +3085,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (13)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &1882529860 stripped
@ -2581,6 +3120,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 4
@ -2629,10 +3176,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (4)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &2069862953 stripped
@ -2647,6 +3206,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 840090813}
m_Modifications:
- target: {fileID: 3633298939642890024, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3807060599035463284, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8178135972483548161, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_RootOrder
value: 10
@ -2695,10 +3262,22 @@ PrefabInstance:
propertyPath: m_Mass
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8571522355681404938, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8571522355731576297, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Name
value: "\u7BB1\u5B50 (10)"
objectReference: {fileID: 0}
- target: {fileID: 8806019390736277179, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 57b1c895a6283ff4c8b3fe198aff93ef, type: 3}
--- !u!4 &2129276659 stripped

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 95ce8df22ad8ad144b80c47371ea4b15
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Scripts/SBFJ.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0e5acb3edeef9aa4fb6f716301937fe3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,200 @@
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using UnityEditor;
public class DisassemblyAssembly : MonoBehaviour
{
public Camera cameraO;
public Transform[] modelParts; // 模型的各个部分
// 用于射线检测的层
public LayerMask clickableLayers;
public Vector3[] explodedPositions; // 记录爆炸后的目标位置
private Vector3[] originalPositions; // 记录模型各个部分的原始位置
private bool isAssembled = true; // 模型是否已组装
public GameObject moveObj;
public float snapThreshold = 0.5f; // 吸附阈值
public float explodeDistance = 5;
public Slider progressBar; // 进度条
public Material tipMaterial; // 高亮材质
private GameObject[] backupParts; // 备份对象
public Transform centerTran;
private Vector3 _offset;
private Vector3 _targetScreenPoint;
private Vector3 moveObjPrePosition;
private bool isDraging = false;
void Start()
{
// 记录模型各个部分的原始位置
originalPositions = new Vector3[modelParts.Length];
explodedPositions = new Vector3[modelParts.Length];
backupParts = new GameObject[modelParts.Length];
for (int i = 0; i < modelParts.Length; i++)
{
originalPositions[i] = modelParts[i].position;
explodedPositions[i] = modelParts[i].position + (modelParts[i].position - centerTran.position).normalized * explodeDistance;
// 创建备份对象
backupParts[i] = Instantiate(modelParts[i].gameObject, modelParts[i].position, modelParts[i].rotation, centerTran);
backupParts[i].GetComponent<Renderer>().material = tipMaterial;
Collider c = backupParts[i].GetComponent<Collider>();
Destroy(c);
backupParts[i].SetActive(false); // 初始时隐藏
}
// 监听滑动条的值变化
progressBar.onValueChanged.AddListener(OnSliderValueChanged);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.I))
{
if (isAssembled)
{
ExplodeModel();
}
else
{
AssembleModel();
}
isAssembled = !isAssembled;
}
if (Input.GetMouseButtonDown(0))
{
Ray ray = cameraO.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, Mathf.Infinity, clickableLayers))
{
moveObj = hit.transform.gameObject;
if (moveObj)
{
isDraging = true;
_targetScreenPoint = cameraO.WorldToScreenPoint(moveObj.transform.position);
moveObjPrePosition = moveObj.transform.position;
_offset = moveObj.transform.position -
cameraO.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y,
_targetScreenPoint.z));
int de = System.Array.FindIndex(modelParts, t => t == moveObj.transform);
backupParts[de].SetActive(true);
}
}
}
if (isDraging)
{
var curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, _targetScreenPoint.z);
Vector3 curWorldPoint = cameraO.ScreenToWorldPoint(curScreenSpace);
curWorldPoint.x = Mathf.Clamp(curWorldPoint.x, xMinValue, xMaxValue);
curWorldPoint.y = Mathf.Clamp(curWorldPoint.y, yMinValue, yMaxValue);
curWorldPoint.z = Mathf.Clamp(curWorldPoint.z, zMinValue, zMaxValue);
moveObj.transform.position = curWorldPoint + _offset;
}
if (isDraging && Input.GetMouseButtonUp(0))
{
isDraging = false;
if (moveObj)
{
/* if (moveObjPrePosition != moveObj.transform.position)
Singleton<SplitModel>.Instance.Splited = true;*/
int de = System.Array.FindIndex(modelParts, t => t == moveObj.transform);
backupParts[de].SetActive(false);
SnapToClosestPosition(moveObj.transform);
}
}
}
void ExplodeModel()
{
float duration = 1f; // 动画持续时间
for (int i = 0; i < modelParts.Length; i++)
{
modelParts[i].DOMove(explodedPositions[i], duration); // 移动每个部分到爆炸位置
}
}
void AssembleModel()
{
float duration = 1f; // 动画持续时间
for (int i = 0; i < modelParts.Length; i++)
{
modelParts[i].DOMove(originalPositions[i], duration); // 将每个部分移回原位
}
}
void SnapToClosestPosition(Transform part)
{
Vector3 closestPosition = Vector3.zero;
float closestDistance = float.MaxValue;
//Vector3[] targetPositions = isAssembled ? explodedPositions : originalPositions;
Vector3[] targetPositions = originalPositions;
int de = System.Array.FindIndex(modelParts, t => t == part);
float distance = Vector3.Distance(part.position, targetPositions[de]);
if (distance < closestDistance)
{
closestDistance = distance;
closestPosition = targetPositions[de];
}
if (closestDistance <= snapThreshold)
{
part.DOMove(closestPosition, 0.5f); // 吸附到最近的位置
}
}
void OnSliderValueChanged(float value)
{
for (int i = 0; i < modelParts.Length; i++)
{
Vector3 targetPosition = originalPositions[i] + (explodedPositions[i] - originalPositions[i]) * value;
modelParts[i].DOMove(targetPosition, 0.5f);
}
}
//是否限制活动范围
[SerializeField] private bool isRangeClamped = true;
//限制范围 当isRangeClamped为true时起作用
[SerializeField] private float xMinValue = -100f; //x最小值
[SerializeField] private float xMaxValue = 100f; //x最大值
[SerializeField] private float zMinValue = -100f; //z最小值
[SerializeField] private float zMaxValue = 100f; //z最大值
[SerializeField] private float yMinValue = 0f; //y最小值
[SerializeField] private float yMaxValue = 100; //y最大值
#if UNITY_EDITOR
private void OnDrawGizmosSelected()
{
//如果限制活动范围 将区域范围绘制出来
if (isRangeClamped)
{
Handles.color = Color.cyan;
Vector3[] points = new Vector3[8]
{
new Vector3(xMinValue, yMinValue, zMinValue),
new Vector3(xMaxValue, yMinValue, zMinValue),
new Vector3(xMaxValue, yMinValue, zMaxValue),
new Vector3(xMinValue, yMinValue, zMaxValue),
new Vector3(xMinValue, yMaxValue, zMinValue),
new Vector3(xMaxValue, yMaxValue, zMinValue),
new Vector3(xMaxValue, yMaxValue, zMaxValue),
new Vector3(xMinValue, yMaxValue, zMaxValue)
};
for (int i = 0; i < 4; i++)
{
int start = i % 4;
int end = (i + 1) % 4;
Handles.DrawLine(points[start], points[end]);
Handles.DrawLine(points[start + 4], points[end + 4]);
Handles.DrawLine(points[start], points[i + 4]);
}
}
}
#endif
}

View File

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

View File

@ -0,0 +1,69 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveCamera : MonoBehaviour
{
public Transform target;
public float xSpeed = 200, ySpeed = 200, mSpeed = 10; //分别定义相机横向、纵向的旋转速度,视野缩放速度
public float yMinLimit = 5, yMaxLimit = 50; //限制纵向的最小最大旋转角
public float distance = 50, minDistance = 2, maxDistance = 100; //设置初始状态相机的视野范围,以及相机所能缩放的最小最大范围
public bool needDamping = true; //是否需要相机阻尼效果
float damping = 5f; //相机阻尼系数
public float x = 0f; //初始状态照相机横向旋转角度
public float y = 0f; //初始状态照相机纵向旋转角度
private Vector3 m_mouseMovePos;
private Camera camera;
private void Start()
{
camera = GetComponent<Camera>();
}
// Update is called once per frame
void LateUpdate()
{
if (target)
{
//鼠标点击右键划动控制相机围绕target旋转鼠标滚轮改变视野
if (Input.GetMouseButton(1))
{
x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
y = ClampAngle(y, yMinLimit, yMaxLimit);
}
distance -= Input.GetAxis("Mouse ScrollWheel") * mSpeed;
distance = Mathf.Clamp(distance, minDistance, maxDistance);
Quaternion rotation = Quaternion.Euler(y, x, 0.0f); //
Vector3 disVector = new Vector3(0f, 0f, -distance);
Vector3 position = rotation * disVector + target.position;
if (needDamping)
{
transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime * damping);
transform.position = Vector3.Lerp(transform.position, position, Time.deltaTime * damping);
}
else
{
transform.rotation = rotation;
transform.position = position;
}
}
}
static float ClampAngle(float angle, float min, float max)
{
if (angle < -360)
angle += 360;
if (angle > 360)
angle -= 360;
return Mathf.Clamp(angle, min, max);
}
}

View File

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

View File

@ -0,0 +1,155 @@
using UnityEngine;
/// <summary>
/// 此代码挂载到相机上,
/// </summary>
public class SmoothUi3DCamera : MonoBehaviour
{
public static SmoothUi3DCamera instance;
// 用于旋转的变换
public Transform pivot;
// 透视变换的偏移量
public Vector3 pivotOffset = Vector3.zero;
// 目标变换
public Transform target;
// 与目标的距离
public float distance = 10.0f;
// 距离的最小值
public float minDistance = 5f;
// 距离的最大值
public float maxDistance = 15f;
// 缩放速度
public float zoomSpeed = 1f;
// 水平旋转速度
public float xSpeed = 250.0f;
// 垂直旋转速度
public float ySpeed = 250.0f;
// 触摸旋转速度因子
[Header("触摸旋转速度因子")]
public float touchSpeed = 0.05f; // 测试显示0.05f 效果更佳
// 是否允许垂直倾斜
public bool allowYTilt = true;
// 垂直倾斜的最小角度限制
public float yMinLimit = -90f;
// 垂直倾斜的最大角度限制
public float yMaxLimit = 90f;
// 水平旋转角度
private float x = 0.0f;
// 垂直旋转角度
private float y = 0.0f;
// 目标水平旋转角度
private float targetX = 0f;
// 目标垂直旋转角度
private float targetY = 0f;
// 目标距离
public float targetDistance = 0f;
// 水平旋转速度
private float xVelocity = 1f;
// 垂直旋转速度
private float yVelocity = 1f;
// 缩放速度
private float zoomVelocity = 1f;
// 定义鼠标控制的屏幕范围(左,右,上,下)
[Header("鼠标控制屏幕范围")]
public Vector2 screenRangeLeftRight = new Vector2(0f, 1f); // 0f 到 1f 表示整个屏幕宽度
public Vector2 screenRangeTopBottom = new Vector2(0f, 1f); // 0f 到 1f 表示整个屏幕高度
private void Awake()
{
instance = this;
}
private void Start()
{
var angles = transform.eulerAngles;
// 因为是操作的相机,所以我们实际的操作出来是向反的方向
targetY = x = angles.x;
targetX = y = ClampAngle(angles.y, yMinLimit, yMaxLimit);
targetDistance = distance;
}
private void LateUpdate()
{
if (!pivot) return;
// 获取鼠标位置
Vector2 mousePosition = Input.mousePosition;
// 检查鼠标是否在屏幕范围内
if (mousePosition.x / Screen.width >= screenRangeLeftRight.x && mousePosition.x / Screen.width <= screenRangeLeftRight.y &&
mousePosition.y / Screen.height >= screenRangeTopBottom.x && mousePosition.y / Screen.height <= screenRangeTopBottom.y)
{
#region
// 鼠标中键控制缩放
var scroll = Input.GetAxis("Mouse ScrollWheel");
if (scroll > 0.0f) targetDistance -= zoomSpeed;
else if (scroll < 0.0f)
targetDistance += zoomSpeed;
targetDistance = Mathf.Clamp(targetDistance, minDistance, maxDistance);
// 鼠标左右键操作旋转
if (Input.GetMouseButton(0) || (Input.GetMouseButton(1) && (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl))))
{
targetX += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
if (allowYTilt)
{
targetY -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
targetY = ClampAngle(targetY, yMinLimit, yMaxLimit);
}
}
x = Mathf.SmoothDampAngle(x, targetX, ref xVelocity, 0.3f);
y = allowYTilt ? Mathf.SmoothDampAngle(y, targetY, ref yVelocity, 0.3f) : targetY;
Quaternion rotation = Quaternion.Euler(y, x, 0);
distance = Mathf.SmoothDamp(distance, targetDistance, ref zoomVelocity, 0.5f);
Vector3 position = rotation * new Vector3(0.0f, 0.0f, -distance) + pivot.position + pivotOffset;
transform.rotation = rotation;
transform.position = position;
#endregion
}
}
private static float ClampAngle(float angle, float min, float max)
{
if (angle < -360) angle += 360;
if (angle > 360) angle -= 360;
return Mathf.Clamp(angle, min, max);
}
[ContextMenu("Load Initialize View")]
public void LoadInitializeView()
{
}
/// <summary>
/// 设置相机的初始状态
/// </summary>
/// <param name="initialXAngle"></param>
/// <param name="initialYAngle"></param>
/// <param name="initialDistance"></param>
public void InitializeView(float initialXAngle, float initialYAngle, float initialDistance)
{
// 设置初始水平旋转角度
targetX = initialXAngle;
x = initialXAngle;
// 设置初始垂直旋转角度,并考虑角度限制
targetY = ClampAngle(initialYAngle, yMinLimit, yMaxLimit);
y = targetY;
// 设置初始距离,并考虑距离限制
targetDistance = Mathf.Clamp(initialDistance, minDistance, maxDistance);
distance = targetDistance;
// 更新相机的位置和旋转
Quaternion rotation = Quaternion.Euler(y, x, 0);
Vector3 position = rotation * new Vector3(0.0f, 0.0f, -distance) + pivot.position + pivotOffset;
transform.rotation = rotation;
transform.position = position;
}
}

View File

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

View File

@ -0,0 +1,150 @@
using UnityEngine;
using System.Collections.Generic;
using System;
// 定义一个可序列化的子网格类
[Serializable]
public class SubMeshes
{
// 网格渲染器
public MeshRenderer meshRenderer;
// 原始位置
public Vector3 originalPosition;
// 展开后的位置
public Vector3 explodedPosition;
}
// 定义一个三维模型功能类继承自MonoBehaviour
public class ThreeDModelFunctions : MonoBehaviour
{
public static ThreeDModelFunctions Instance;
// 变量区域
#region Variables
// 子网格渲染器列表
public List<SubMeshes> childMeshRenderers;
// 是否在展开视图
public bool isInExplodedView = false;
// 展开速度
public float explosionSpeed = 0.1f;
// 是否正在移动
public bool isMoving = false;
#endregion
// Unity函数区域
#region UnityFunctions
// 在对象被激活时调用一次
private void Awake()
{
Instance=this;
Init();
}
/// <summary>
/// 初始化函数
/// </summary>
public void Init()
{
// 初始化子网格渲染器列表
childMeshRenderers = new List<SubMeshes>();
// 遍历所有子物体中的MeshRenderer组件
foreach (var item in GetComponentsInChildren<MeshRenderer>())
{
// 创建一个新的子网格对象
SubMeshes mesh = new SubMeshes();
// 设置网格渲染器
mesh.meshRenderer = item;
// 设置原始位置
mesh.originalPosition = item.transform.position;
// 设置展开后的位置
mesh.explodedPosition = item.bounds.center * 2f;
// 将子网格对象添加到列表中
childMeshRenderers.Add(mesh);
}
}
// 每帧调用一次
private void Update()
{
// 如果正在移动
if (isMoving)
{
// 如果在展开视图状态
if (isInExplodedView)
{
// 遍历所有子网格渲染器
foreach (var item in childMeshRenderers)
{
// 通过插值移动到展开位置
item.meshRenderer.transform.position = Vector3.Lerp(item.meshRenderer.transform.position, item.explodedPosition, explosionSpeed);
// 如果距离小于阈值,停止移动
if (Vector3.Distance(item.meshRenderer.transform.position, item.explodedPosition) < 0.001f)
{
isMoving = false;
}
}
}
// 如果不在展开视图状态
else
{
// 遍历所有子网格渲染器
foreach (var item in childMeshRenderers)
{
// 通过插值移动到原始位置
item.meshRenderer.transform.position = Vector3.Lerp(item.meshRenderer.transform.position, item.originalPosition, explosionSpeed);
// 如果距离小于阈值,停止移动
if (Vector3.Distance(item.meshRenderer.transform.position, item.originalPosition) < 0.001f)
{
isMoving = false;
}
}
}
}
if (Input.GetKeyDown(KeyCode.Q))
{
ToggleExplodedView();
}
}
#endregion
// 自定义函数区域
#region CustomFunctions
// 切换展开视图状态
public void ToggleExplodedView()
{
// 如果当前在展开视图
if (isInExplodedView)
{
// 切换到非展开视图
isInExplodedView = false;
// 开始移动
isMoving = true;
}
// 如果当前不在展开视图
else
{
// 切换到展开视图
isInExplodedView = true;
// 开始移动
isMoving = true;
}
}
/// <summary>
/// 设置展开视图状态
/// </summary>
/// <param name="explode"></param>
public void ToggleExplodedView(bool explode)
{
// 根据传入的参数设置视图状态
isInExplodedView = explode;
// 开始移动
isMoving = true;
}
#endregion
}

View File

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