添加浮力脚本
This commit is contained in:
@@ -24,10 +24,9 @@ Material:
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _EMISSION
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 3
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
@@ -40,7 +39,7 @@ Material:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 499128f6cc2d29a47938097f108c78da, type: 3}
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
@@ -64,7 +63,7 @@ Material:
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 499128f6cc2d29a47938097f108c78da, type: 3}
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
@@ -132,9 +131,9 @@ Material:
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||
- _EmissionColor: {r: 0.6985294, g: 0.48542836, b: 0.21572232, a: 1}
|
||||
- _BaseColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _Color: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
||||
@@ -124,8 +124,8 @@ Material:
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _Color: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
|
||||
@@ -155,18 +155,23 @@ Material:
|
||||
- _DoubleSidedGIMode: 0
|
||||
- _DoubleSidedNormalMode: 2
|
||||
- _DstBlend: 10
|
||||
- _DstBlend2: 0
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnableBlendModePreserveSpecularLighting: 1
|
||||
- _EnableFogOnTransparent: 1
|
||||
- _ExcludeFromTUAndAA: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _MaterialID: 1
|
||||
- _MaterialTypeMask: 2
|
||||
- _Metallic: 0
|
||||
- _Mode: 3
|
||||
- _Normal_Flip_Back_Faces: 1
|
||||
- _OcclusionStrength: 1
|
||||
- _OpaqueCullMode: 2
|
||||
- _Parallax: 0.02
|
||||
- _PerPixelSorting: 0
|
||||
- _QueueControl: 0
|
||||
- _QueueOffset: 0
|
||||
- _RayTracing: 0
|
||||
@@ -181,6 +186,7 @@ Material:
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 5
|
||||
- _SrcBlendAlpha: 1
|
||||
- _StencilRef: 0
|
||||
- _StencilRefDepth: 0
|
||||
- _StencilRefDistortionVec: 4
|
||||
@@ -194,6 +200,7 @@ Material:
|
||||
- _SupportDecals: 1
|
||||
- _Surface: 1
|
||||
- _SurfaceType: 1
|
||||
- _TransmissionEnable: 1
|
||||
- _TransparentBackfaceEnable: 0
|
||||
- _TransparentCullMode: 2
|
||||
- _TransparentDepthPostpassEnable: 0
|
||||
@@ -203,6 +210,7 @@ Material:
|
||||
- _TransparentZWrite: 0
|
||||
- _UVSec: 0
|
||||
- _UseShadowThreshold: 0
|
||||
- _Water_Volume_Multiplier: 1
|
||||
- _WorkflowMode: 1
|
||||
- _ZTest: 4
|
||||
- _ZTestDepthEqualForOpaque: 4
|
||||
|
||||
@@ -8,111 +8,90 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 809695123049724894, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 809695123049724894, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 809695123049724894, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 809695123049724894, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2823138595762987762, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 2823138595762987762, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Examples_FloatingObjects
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2853796242865667210, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 2853796242865667210, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: managedReferences[1004]._Enabled
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5549572483640152611, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5549572483640152611, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_MaxValue
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 5655619906866042202, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6119524809475244111, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- target: {fileID: 6119524809475244111, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
propertyPath: m_Text
|
||||
value: Floating Objects
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 4586859356124459972}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 510414307367690215}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8023298220426844320}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
- targetCorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1585603024147405864}
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
--- !u!4 &7195797433741594109 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 7451036494515983304, guid: 8b98a14ae91dd498d8f577f0f8f4aff1, type: 3}
|
||||
m_PrefabInstance: {fileID: 341145004360408629}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &2066873169911808049
|
||||
@@ -123,58 +102,47 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7195797433741594109}
|
||||
m_Modifications:
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Examples_FloatingBox (2)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
@@ -185,8 +153,7 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
--- !u!4 &8023298220426844320 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
m_PrefabInstance: {fileID: 2066873169911808049}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &5499094441694620501
|
||||
@@ -197,58 +164,51 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7195797433741594109}
|
||||
m_Modifications:
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Examples_FloatingBox
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 7065213192571102027, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
@@ -259,8 +219,7 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
--- !u!4 &4586859356124459972 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
m_PrefabInstance: {fileID: 5499094441694620501}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &7347139586002683065
|
||||
@@ -271,58 +230,47 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7195797433741594109}
|
||||
m_Modifications:
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Examples_FloatingBox (3)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 7
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
@@ -333,8 +281,7 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
--- !u!4 &1585603024147405864 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
m_PrefabInstance: {fileID: 7347139586002683065}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8422331713121437558
|
||||
@@ -345,58 +292,47 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7195797433741594109}
|
||||
m_Modifications:
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 875385380025743593, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Examples_FloatingBox (1)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
- target: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
@@ -407,7 +343,6 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
--- !u!4 &510414307367690215 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 8356280719142672529, guid: 84f17dfc7c7a7485296643a4e64d6200, type: 3}
|
||||
m_PrefabInstance: {fileID: 8422331713121437558}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
||||
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@@ -42,8 +42,8 @@ RenderSettings:
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@@ -66,9 +66,6 @@ LightmapSettings:
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
@@ -96,9 +93,8 @@ LightmapSettings:
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: 6e72aca972f324f7886200f86939d735,
|
||||
type: 2}
|
||||
m_LightingDataAsset: {fileID: 112000000, guid: be61fd374ee0fad46a337d78e0ed01ae, type: 2}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: 6e72aca972f324f7886200f86939d735, type: 2}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
@@ -770,28 +766,17 @@ MonoBehaviour:
|
||||
m_MoveRepeatDelay: 0.5
|
||||
m_MoveRepeatRate: 0.1
|
||||
m_XRTrackingOrigin: {fileID: 0}
|
||||
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||
m_DeselectOnBackgroundClick: 1
|
||||
m_PointerBehavior: 0
|
||||
m_CursorLockBehavior: 0
|
||||
@@ -893,6 +878,11 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -914,6 +904,7 @@ MeshRenderer:
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
@@ -949,58 +940,47 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1845454492}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.9063079
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0.42261827
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 105
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 15
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5304508333967466499, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
- target: {fileID: 5304508333967466499, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Sun
|
||||
objectReference: {fileID: 0}
|
||||
@@ -1011,8 +991,7 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
--- !u!4 &1364867124 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 1399345652565587599, guid: 774ab582b39374a7e9d5dac8e31b9a5a, type: 3}
|
||||
m_PrefabInstance: {fileID: 1364867123}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1682107712
|
||||
@@ -1104,58 +1083,47 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1845454492}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2942909709672342223, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
- target: {fileID: 2942909709672342223, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Atmosphere
|
||||
objectReference: {fileID: 0}
|
||||
@@ -1166,8 +1134,7 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
--- !u!4 &1734491900 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 2272289698115174340, guid: 63a4b7e65d06948649ac3e10077d8c2e, type: 3}
|
||||
m_PrefabInstance: {fileID: 1734491899}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1835631273
|
||||
@@ -1315,58 +1282,47 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1845454492}
|
||||
m_Modifications:
|
||||
- target: {fileID: 963553959586484309, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 963553959586484309, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Lighting
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
- target: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
@@ -1377,8 +1333,7 @@ PrefabInstance:
|
||||
m_SourcePrefab: {fileID: 100100000, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
--- !u!4 &1886939755 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6,
|
||||
type: 3}
|
||||
m_CorrespondingSourceObject: {fileID: 6033288213199496986, guid: bece9afbf3ddd49059dd73ba2cc986f6, type: 3}
|
||||
m_PrefabInstance: {fileID: 1886939754}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &2128464135
|
||||
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,123 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(Rigidbody))]
|
||||
public class BobberBuoyancy : MonoBehaviour
|
||||
{
|
||||
[Header("Water")]
|
||||
public float waterLevel = 0f; // 水面是 0
|
||||
public Vector3 waterFlow = Vector3.zero;
|
||||
|
||||
[Header("Bobber Size (origin at bottom)")]
|
||||
public float bobberHeight = 0.18f; // 浮漂总高度(底部原点 → 顶部)
|
||||
|
||||
[Header("Buoyancy")]
|
||||
public float maxBuoyancy = 12f; // 完全浸没浮力
|
||||
public float buoyancyMultiplier = 1.0f;
|
||||
public float waterDrag = 0.7f;
|
||||
public float waterAngularDrag = 0.4f;
|
||||
|
||||
[Header("Vertical Damping(控制“慢慢上浮”,避免弹跳)")]
|
||||
public float verticalDamping = 4.0f; // 数值越大,上浮越慢、越不弹
|
||||
|
||||
[Header("Upright")]
|
||||
public float uprightStrength = 8f; // 站漂恢复力
|
||||
public float uprightDamping = 1.2f;
|
||||
|
||||
[Header("Lay Down (躺漂)")]
|
||||
public float layDownThreshold = 0.15f; // 低于 15% 浸没 → 转入躺漂模式
|
||||
public float layDownUprightMultiplier = 0.2f; // 躺漂时保留多少站立力度(越小越“翘头”)
|
||||
|
||||
private Rigidbody rb;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
rb = GetComponent<Rigidbody>();
|
||||
rb.useGravity = true;
|
||||
|
||||
// 重心稍微靠上,配合 AddForceAtPosition,才能让“底在水里、头上翘”
|
||||
rb.centerOfMass = new Vector3(0, bobberHeight * 0.4f, 0);
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
ApplyBuoyancy();
|
||||
ApplyFlowForce();
|
||||
ApplyOrientationControl();
|
||||
}
|
||||
|
||||
void ApplyBuoyancy()
|
||||
{
|
||||
float bottom = rb.position.y; // 原点就是最底部
|
||||
float depth = waterLevel - bottom; // 浸入深度 = 水面 - 底部
|
||||
|
||||
if (depth <= 0f) return; // 完全在水面上方,无浮力
|
||||
|
||||
// 当前浸没比例
|
||||
float submersionRatio = Mathf.Clamp01(depth / bobberHeight);
|
||||
|
||||
// 基础浮力(和你之前一致)
|
||||
float baseForce = maxBuoyancy * submersionRatio * buoyancyMultiplier;
|
||||
|
||||
// ⭐ 竖直速度(用你原来习惯的 linearVelocity)
|
||||
float vy = rb.linearVelocity.y;
|
||||
|
||||
// ⭐ 阻尼项:速度越快,反向力越大
|
||||
// 下沉很快 → 给一个向上的阻尼(减缓下沉)
|
||||
// 向上很快 → 给一个向下的阻尼(防止弹出水面)
|
||||
float damping = -vy * verticalDamping;
|
||||
|
||||
// 总的向上力:基础浮力 + 阻尼修正
|
||||
float totalUpForce = baseForce + damping;
|
||||
|
||||
// 物理上浮力不能把它“往下按”,所以最少为 0
|
||||
if (totalUpForce < 0f) totalUpForce = 0f;
|
||||
|
||||
// ⭐ 浮力作用点 = 浸没体积中心(不动,保持你之前的设计)
|
||||
float clampedDepth = Mathf.Clamp(depth, 0, bobberHeight);
|
||||
float centerY = bottom + clampedDepth * 0.5f;
|
||||
Vector3 buoyancyPoint = new Vector3(rb.position.x, centerY, rb.position.z);
|
||||
|
||||
rb.AddForceAtPosition(Vector3.up * totalUpForce, buoyancyPoint, ForceMode.Acceleration);
|
||||
|
||||
// 水中阻力(保留原逻辑)
|
||||
rb.AddForce(-rb.linearVelocity * waterDrag, ForceMode.Acceleration);
|
||||
rb.AddTorque(-rb.angularVelocity * waterAngularDrag, ForceMode.Acceleration);
|
||||
}
|
||||
|
||||
void ApplyFlowForce()
|
||||
{
|
||||
if (waterFlow.sqrMagnitude <= 0.0001f) return;
|
||||
rb.AddForce((waterFlow - rb.linearVelocity) * 0.3f, ForceMode.Acceleration);
|
||||
}
|
||||
|
||||
void ApplyOrientationControl()
|
||||
{
|
||||
float bottom = rb.position.y;
|
||||
float depth = waterLevel - bottom;
|
||||
float submersionRatio = Mathf.Clamp01(depth / bobberHeight);
|
||||
|
||||
Vector3 up = transform.up;
|
||||
Vector3 worldUp = Vector3.up;
|
||||
|
||||
if (submersionRatio > layDownThreshold)
|
||||
{
|
||||
// 深浸 → 正常站漂
|
||||
Vector3 uprightTorqueVec =
|
||||
Vector3.Cross(up, worldUp) * uprightStrength
|
||||
- rb.angularVelocity * uprightDamping;
|
||||
|
||||
rb.AddTorque(uprightTorqueVec, ForceMode.Acceleration);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 浅浸 → “躺漂”,只保留少量站立力,让它自然斜、头上翘
|
||||
float reduced = uprightStrength * layDownUprightMultiplier;
|
||||
|
||||
Vector3 uprightTorqueVec =
|
||||
Vector3.Cross(up, worldUp) * reduced
|
||||
- rb.angularVelocity * uprightDamping;
|
||||
|
||||
rb.AddTorque(uprightTorqueVec, ForceMode.Acceleration);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0d2d3d7643d84524b8841fcf62193a04
|
||||
timeCreated: 1764424969
|
||||
@@ -7,7 +7,7 @@ namespace NBF
|
||||
[SerializeField] private Rigidbody _rbody;
|
||||
|
||||
[SerializeField] private ConfigurableJoint joint;
|
||||
[SerializeField] private Buoyancy _buoyancy;
|
||||
// [SerializeField] private Buoyancy _buoyancy;
|
||||
public Rigidbody rbody => _rbody;
|
||||
|
||||
public void SetJoint(Rigidbody rb)
|
||||
@@ -27,7 +27,7 @@ namespace NBF
|
||||
public void SetDetectCollisionEnabled(bool en)
|
||||
{
|
||||
_rbody.detectCollisions = en;
|
||||
_buoyancy.EnablePhysics(en);
|
||||
// _buoyancy.EnablePhysics(en);
|
||||
}
|
||||
|
||||
public void SetVelocity(Vector3 velocity)
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class FloatBobberController : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Rigidbody _rigidbody;
|
||||
[Header("水属性")] public float waterLevel = 0f;
|
||||
|
||||
[Header("浮漂最大浮力")] public float bobberVolume = 30f; // 浮漂最大浮力 (cm³)
|
||||
|
||||
public float bobberHeight = 0.25f; // 浮漂长度,用来决定躺漂角度
|
||||
|
||||
[Header("配件重量")] public float sinkerWeight = 2f;
|
||||
public float baitWeight = 0.5f;
|
||||
public float hookWeight = 0.2f;
|
||||
|
||||
[Header("Behaviour")] public float fallSpeed = 8f;
|
||||
public float riseSpeed = 3f;
|
||||
// public float smoothDamping = 8f; // 插值平滑
|
||||
|
||||
[Header("Noise")] public float noiseAmp = 0.015f;
|
||||
public float noiseFreq = 1.5f;
|
||||
|
||||
float impulseForce = 0f;
|
||||
float impulseDecay = 4f;
|
||||
|
||||
void FixedUpdate()
|
||||
{
|
||||
SimulateBobber();
|
||||
}
|
||||
|
||||
void SimulateBobber()
|
||||
{
|
||||
if (!_rigidbody.isKinematic) return;
|
||||
float totalDownwardWeight = sinkerWeight + baitWeight + hookWeight;
|
||||
|
||||
float maxBuoyancy = bobberVolume; // 最大浮力 = 体积
|
||||
float netBuoyancy = maxBuoyancy - totalDownwardWeight;
|
||||
|
||||
float targetY;
|
||||
|
||||
// -------------------------
|
||||
// 1. 判断浮漂应该沉多少(吃水深度)
|
||||
// -------------------------
|
||||
if (netBuoyancy > 0)
|
||||
{
|
||||
float buoyPercent = Mathf.Clamp01(netBuoyancy / maxBuoyancy);
|
||||
float rise = buoyPercent * 0.1f; // 浮漂露出水面的高度
|
||||
|
||||
targetY = waterLevel + rise;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 净浮力为负 → 说明浮漂整体被拉下,沉入水中
|
||||
float sinkDistance = Mathf.Abs(netBuoyancy) * 0.03f;
|
||||
targetY = waterLevel - sinkDistance;
|
||||
}
|
||||
|
||||
targetY += Mathf.Sin(Time.time * noiseFreq) * noiseAmp; // 微扰模拟波浪
|
||||
|
||||
// 顿口/顶漂力
|
||||
if (impulseForce != 0f)
|
||||
{
|
||||
targetY += impulseForce * Time.deltaTime;
|
||||
impulseForce = Mathf.Lerp(impulseForce, 0, Time.deltaTime * impulseDecay);
|
||||
}
|
||||
|
||||
// -----------------------------
|
||||
// ③ 上浮 / 下沉差速
|
||||
// -----------------------------
|
||||
float y = transform.position.y;
|
||||
float diff = targetY - y;
|
||||
|
||||
if (diff > 0) // 上浮
|
||||
y += diff * Time.deltaTime * riseSpeed;
|
||||
else
|
||||
y += diff * Time.deltaTime * fallSpeed;
|
||||
|
||||
transform.position = new Vector3(transform.position.x, y, transform.position.z);
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------
|
||||
// 外部控制接口
|
||||
// ----------------------------------------
|
||||
|
||||
public void TriggerDownPulse(float s = 0.8f)
|
||||
{
|
||||
impulseForce -= Mathf.Abs(s);
|
||||
}
|
||||
|
||||
public void TriggerUpPulse(float s = 0.8f)
|
||||
{
|
||||
impulseForce += Mathf.Abs(s);
|
||||
}
|
||||
|
||||
public void AddFishPull(float v)
|
||||
{
|
||||
sinkerWeight += v;
|
||||
}
|
||||
|
||||
public void ReleaseFishPull(float v)
|
||||
{
|
||||
sinkerWeight -= v;
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0e5ba2adc224f279b89a0adf2bd97a9
|
||||
timeCreated: 1764168783
|
||||
@@ -1,298 +0,0 @@
|
||||
// using UnityEngine;
|
||||
//
|
||||
// public class FloatBobberController : MonoBehaviour
|
||||
// {
|
||||
// [Header("Water System")]
|
||||
// public bool useKWS = false;
|
||||
// public LayerMask waterLayer;
|
||||
// public float waterRaycastHeight = 10f;
|
||||
//
|
||||
// [Header("Spring Physics")]
|
||||
// public float stiffness = 0.35f; // 弹性力度
|
||||
// public float damping = 0.82f; // 阻尼
|
||||
// public float noiseStrength = 0.02f; // 自然颤动
|
||||
//
|
||||
// [Header("Tilt")]
|
||||
// public Transform lineAttachPoint; // 钓线连接点(让漂倾斜)
|
||||
// public float tiltStrength = 6f;
|
||||
//
|
||||
// private float targetOffsetY = 0f;
|
||||
// private float offsetY = 0f;
|
||||
// private float velocity = 0f;
|
||||
//
|
||||
// private float baseWaterHeight = 0f;
|
||||
//
|
||||
// // 随机噪声 seed
|
||||
// private float noiseSeed;
|
||||
//
|
||||
// void Start()
|
||||
// {
|
||||
// noiseSeed = Random.value * 100f;
|
||||
// }
|
||||
//
|
||||
// void Update()
|
||||
// {
|
||||
// UpdateWaterHeight();
|
||||
// UpdateSpringPhysics();
|
||||
// UpdateTilt();
|
||||
// ApplyFinalPosition();
|
||||
// }
|
||||
//
|
||||
// // -----------------------------------------------------------
|
||||
// // 1. 水面高度获取 (支持 KWS 或 Raycast)
|
||||
// // -----------------------------------------------------------
|
||||
// void UpdateWaterHeight()
|
||||
// {
|
||||
// if (useKWS)
|
||||
// {
|
||||
// // ⭐ 你自己替换为 KWS 的 API
|
||||
// baseWaterHeight = SampleWaterHeight_KWS();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 简单射线获取水面高度
|
||||
// Vector3 start = transform.position + Vector3.up * waterRaycastHeight;
|
||||
// if (Physics.Raycast(start, Vector3.down, out RaycastHit hit, 50f, waterLayer))
|
||||
// {
|
||||
// baseWaterHeight = hit.point.y;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// float SampleWaterHeight_KWS()
|
||||
// {
|
||||
// // ❗你需要替换成你的 KWS 接口,比如:
|
||||
// // return KWS.GetWaterHeight(transform.position);
|
||||
// return transform.position.y; // 临时占位
|
||||
// }
|
||||
//
|
||||
// // -----------------------------------------------------------
|
||||
// // 2. 弹簧-阻尼伪物理 (核心)
|
||||
// // -----------------------------------------------------------
|
||||
// void UpdateSpringPhysics()
|
||||
// {
|
||||
// // 弹簧吸附:朝向 targetOffsetY
|
||||
// velocity += (targetOffsetY - offsetY) * stiffness;
|
||||
//
|
||||
// // 阻尼
|
||||
// velocity *= damping;
|
||||
//
|
||||
// // 移动
|
||||
// offsetY += velocity;
|
||||
//
|
||||
// // 自然轻微噪声
|
||||
// float noise = (Mathf.PerlinNoise(Time.time * 1.2f, noiseSeed) - 0.5f) * noiseStrength;
|
||||
// offsetY += noise;
|
||||
// }
|
||||
//
|
||||
// // -----------------------------------------------------------
|
||||
// // 3. 漂倾斜(依据钓线方向)
|
||||
// // -----------------------------------------------------------
|
||||
// void UpdateTilt()
|
||||
// {
|
||||
// if (lineAttachPoint == null) return;
|
||||
//
|
||||
// Vector3 dir = lineAttachPoint.position - transform.position;
|
||||
// if (dir.magnitude > 0.001f)
|
||||
// {
|
||||
// Quaternion targetRot = Quaternion.LookRotation(dir, Vector3.up);
|
||||
// transform.rotation = Quaternion.Slerp(transform.rotation, targetRot, Time.deltaTime * tiltStrength);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // -----------------------------------------------------------
|
||||
// // 4. 应用最终位置
|
||||
// // -----------------------------------------------------------
|
||||
// void ApplyFinalPosition()
|
||||
// {
|
||||
// Vector3 pos = transform.position;
|
||||
// pos.y = baseWaterHeight + offsetY;
|
||||
// transform.position = pos;
|
||||
// }
|
||||
//
|
||||
// // ============================ 触发动作 API ============================
|
||||
//
|
||||
// /// <summary>小顿口:轻微上升 0.5~1.5 目</summary>
|
||||
// public void TriggerSmallDonk()
|
||||
// {
|
||||
// targetOffsetY = Random.Range(0.3f, 0.9f);
|
||||
// stiffness = 0.40f;
|
||||
// damping = 0.82f;
|
||||
// }
|
||||
//
|
||||
// /// <summary>顿口:快速上升,并轻微过冲</summary>
|
||||
// public void TriggerDonk()
|
||||
// {
|
||||
// targetOffsetY = Random.Range(1.0f, 1.8f);
|
||||
// stiffness = 0.55f;
|
||||
// damping = 0.78f;
|
||||
// }
|
||||
//
|
||||
// /// <summary>顶漂:慢慢上浮几目</summary>
|
||||
// public void TriggerTopLift()
|
||||
// {
|
||||
// targetOffsetY = Random.Range(1.0f, 3.0f);
|
||||
// stiffness = 0.18f;
|
||||
// damping = 0.90f;
|
||||
// }
|
||||
//
|
||||
// /// <summary>黑漂:快速下沉,并保持</summary>
|
||||
// public void TriggerBlackSink()
|
||||
// {
|
||||
// targetOffsetY = Random.Range(-3.0f, -6.0f);
|
||||
// stiffness = 0.45f;
|
||||
// damping = 0.75f;
|
||||
// }
|
||||
//
|
||||
// /// <summary>点动:轻微上下动</summary>
|
||||
// public void TriggerNibble()
|
||||
// {
|
||||
// targetOffsetY = Mathf.Sin(Time.time * Random.Range(6f, 12f)) * 0.1f;
|
||||
// stiffness = 0.25f;
|
||||
// damping = 0.88f;
|
||||
// }
|
||||
//
|
||||
// /// <summary>走漂(水层有流料或者风),水平漂移你用其他脚本控制即可</summary>
|
||||
// public void TriggerDrift(float amount)
|
||||
// {
|
||||
// targetOffsetY = 0f;
|
||||
// offsetY = 0f;
|
||||
// }
|
||||
//
|
||||
// /// <summary>恢复到 Idle 状态</summary>
|
||||
// public void ResetIdle()
|
||||
// {
|
||||
// targetOffsetY = 0f;
|
||||
// stiffness = 0.35f;
|
||||
// damping = 0.85f;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// using UnityEngine;
|
||||
//
|
||||
// public class FloatBobberControllerPro : MonoBehaviour
|
||||
// {
|
||||
// [Header("Water Settings")] public float waterLevel = 0f; // 水面高度世界坐标
|
||||
// public float waterDensity = 1f; // 水密度(默认1即可)
|
||||
//
|
||||
// [Header("Bobber Physical Settings")] public float bobberVolume = 30f; // 浮漂最大浮力(cm³)
|
||||
// public float bobberMass = 1f; // 浮漂自身重量(克)
|
||||
//
|
||||
// [Header("Tackle Weight Settings")] public float sinkerWeight = 2f; // 铅坠重量(克)
|
||||
// public float baitWeight = 0.5f; // 鱼饵重量(克)
|
||||
// public float hookWeight = 0.2f; // 鱼钩重量(克)
|
||||
//
|
||||
// [Header("Physics Behaviour")] public float riseSpeed = 1.2f; // 浮漂上浮速度
|
||||
// public float fallSpeed = 1.5f; // 浮漂下沉速度
|
||||
// public float smoothDamping = 8f; // 插值平滑
|
||||
//
|
||||
// [Header("Random Water Movements")] public float noiseAmplitude = 0.02f; // 微扰幅度
|
||||
// public float noiseFrequency = 1f; // 微扰频率
|
||||
//
|
||||
// float velocity = 0f;
|
||||
// float timeNoise = 0f;
|
||||
//
|
||||
// // 用于顿口、顶漂脉冲
|
||||
// float impulseForce = 0f;
|
||||
// float impulseDecay = 4f;
|
||||
//
|
||||
// void Update()
|
||||
// {
|
||||
// SimulateBobberPhysics();
|
||||
// }
|
||||
//
|
||||
// void SimulateBobberPhysics()
|
||||
// {
|
||||
// float totalDownwardWeight = bobberMass + sinkerWeight + baitWeight + hookWeight;
|
||||
//
|
||||
// float maxBuoyancy = bobberVolume; // 最大浮力 = 体积
|
||||
// float netBuoyancy = maxBuoyancy - totalDownwardWeight;
|
||||
//
|
||||
// float targetY;
|
||||
//
|
||||
// // -------------------------
|
||||
// // 1. 判断浮漂应该沉多少(吃水深度)
|
||||
// // -------------------------
|
||||
// if (netBuoyancy > 0)
|
||||
// {
|
||||
// float buoyPercent = Mathf.Clamp01(netBuoyancy / maxBuoyancy);
|
||||
// float rise = buoyPercent * 0.1f; // 浮漂露出水面的高度
|
||||
//
|
||||
// targetY = waterLevel + rise;
|
||||
//
|
||||
// targetY += Mathf.Sin(Time.time * noiseFrequency) * noiseAmplitude; // 微扰模拟波浪
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 净浮力为负 → 说明浮漂整体被拉下,沉入水中
|
||||
// float sinkDistance = Mathf.Abs(netBuoyancy) * 0.03f;
|
||||
// targetY = waterLevel - sinkDistance;
|
||||
// }
|
||||
//
|
||||
// // -------------------------
|
||||
// // 2. 顶漂 & 顿口 脉冲
|
||||
// // -------------------------
|
||||
// if (impulseForce != 0f)
|
||||
// {
|
||||
// targetY += impulseForce * Time.deltaTime;
|
||||
// impulseForce = Mathf.Lerp(impulseForce, 0f, Time.deltaTime * impulseDecay);
|
||||
// }
|
||||
//
|
||||
// // -------------------------
|
||||
// // 3. 平滑过渡到目标位置(核心)
|
||||
// // -------------------------
|
||||
// float currentY = transform.position.y;
|
||||
//
|
||||
// float newY = Mathf.Lerp(
|
||||
// currentY,
|
||||
// targetY,
|
||||
// Time.deltaTime * smoothDamping
|
||||
// );
|
||||
//
|
||||
// transform.position = new Vector3(
|
||||
// transform.position.x,
|
||||
// newY,
|
||||
// transform.position.z
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// // ===========================
|
||||
// // 外部函数:模拟钓鱼动作
|
||||
// // ===========================
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 顿口:浮漂瞬间被向下拉一下(鱼轻轻吸饵)
|
||||
// /// </summary>
|
||||
// public void TriggerDownPulse(float strength = 0.8f)
|
||||
// {
|
||||
// impulseForce -= Mathf.Abs(strength);
|
||||
// }
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 顶漂:浮漂瞬间向上冒一下(鱼儿托饵)
|
||||
// /// </summary>
|
||||
// public void TriggerUpPulse(float strength = 0.8f)
|
||||
// {
|
||||
// impulseForce += Mathf.Abs(strength);
|
||||
// }
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 模拟鱼儿吃饵 → 增加下拉力
|
||||
// /// </summary>
|
||||
// public void AddFishPull(float value)
|
||||
// {
|
||||
// sinkerWeight += value;
|
||||
// }
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 模拟脱钩 → 拉力消失
|
||||
// /// </summary>
|
||||
// public void RemoveFishPull(float value)
|
||||
// {
|
||||
// sinkerWeight -= value;
|
||||
// }
|
||||
// }
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aae942875a204e83b90e9713146caded
|
||||
timeCreated: 1763993650
|
||||
@@ -1,169 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class FloatBobberControllerPro : MonoBehaviour
|
||||
{
|
||||
[Header("Water")]
|
||||
public float waterLevel = 0f;
|
||||
|
||||
[Header("Bobber Physical")]
|
||||
public float bobberVolume = 30f; // 浮漂最大浮力 (cm³)
|
||||
public float bobberMass = 1f; // 浮漂自重 (g)
|
||||
public float bobberHeight = 0.25f; // 浮漂长度,用来决定躺漂角度
|
||||
|
||||
[Header("Tackle Weight")]
|
||||
public float sinkerWeight = 2f;
|
||||
public float baitWeight = 0.5f;
|
||||
public float hookWeight = 0.2f;
|
||||
|
||||
[Header("Behaviour")]
|
||||
public float fallSpeed = 8f;
|
||||
public float riseSpeed = 3f;
|
||||
public float angleLaySpeed = 2f; // 躺漂速度
|
||||
public float uprightSpeed = 2f; // 立漂速度
|
||||
public float bottomDrag = 1.2f; // 铅坠触底阻力(越大越难被浮漂拉起)
|
||||
|
||||
[Header("Angles")]
|
||||
public float maxLayAngle = 75f; // 最大躺漂角度
|
||||
float currentAngle = 0f;
|
||||
|
||||
[Header("Noise")]
|
||||
public float noiseAmp = 0.015f;
|
||||
public float noiseFreq = 1.5f;
|
||||
|
||||
float impulseForce = 0f;
|
||||
float impulseDecay = 4f;
|
||||
|
||||
void Update()
|
||||
{
|
||||
SimulateBobber();
|
||||
}
|
||||
|
||||
void SimulateBobber()
|
||||
{
|
||||
float totalWeight = bobberMass + sinkerWeight + baitWeight + hookWeight;
|
||||
float netBuoyancy = bobberVolume - totalWeight; // 正 → 上浮;负 → 下拉
|
||||
|
||||
// -----------------------------
|
||||
// ① 计算浮漂底部 Y 的高度
|
||||
// -----------------------------
|
||||
float bobberBottomY = transform.position.y - bobberHeight * 0.5f;
|
||||
float bottomY = waterLevel - 0.02f; // 水底高度(可替换真实地形)
|
||||
|
||||
bool sinkerOnBottom = (bobberBottomY <= bottomY);
|
||||
|
||||
// -----------------------------
|
||||
// ② 计算 targetY
|
||||
// -----------------------------
|
||||
float targetY;
|
||||
|
||||
if (!sinkerOnBottom)
|
||||
{
|
||||
// 铅坠悬浮 → 浮漂直立
|
||||
if (netBuoyancy > 0)
|
||||
{
|
||||
float rise = Mathf.Clamp01(netBuoyancy / bobberVolume) * 0.1f;
|
||||
targetY = waterLevel + rise;
|
||||
}
|
||||
else
|
||||
{
|
||||
float sink = Mathf.Abs(netBuoyancy) * 0.02f;
|
||||
targetY = waterLevel - sink;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 铅坠触底 → 浮漂无法再被向下拉
|
||||
if (netBuoyancy > bottomDrag)
|
||||
{
|
||||
// 浮漂浮力足够将其立起来
|
||||
float rise = Mathf.Clamp01((netBuoyancy - bottomDrag) / bobberVolume) * 0.1f;
|
||||
targetY = waterLevel + rise; // 轻轻立起
|
||||
}
|
||||
else
|
||||
{
|
||||
// 浮漂浮力不足 → 躺漂
|
||||
targetY = waterLevel + 0.01f; // 漂身贴水
|
||||
}
|
||||
}
|
||||
|
||||
// 水波噪声
|
||||
targetY += Mathf.Sin(Time.time * noiseFreq) * noiseAmp;
|
||||
|
||||
// 顿口/顶漂力
|
||||
if (impulseForce != 0f)
|
||||
{
|
||||
targetY += impulseForce * Time.deltaTime;
|
||||
impulseForce = Mathf.Lerp(impulseForce, 0, Time.deltaTime * impulseDecay);
|
||||
}
|
||||
|
||||
// -----------------------------
|
||||
// ③ 上浮 / 下沉差速
|
||||
// -----------------------------
|
||||
float y = transform.position.y;
|
||||
float diff = targetY - y;
|
||||
|
||||
if (diff > 0) // 上浮
|
||||
y += diff * Time.deltaTime * riseSpeed;
|
||||
else
|
||||
y += diff * Time.deltaTime * fallSpeed;
|
||||
|
||||
transform.position = new Vector3(transform.position.x, y, transform.position.z);
|
||||
|
||||
// -----------------------------
|
||||
// ④ 浮漂角度控制
|
||||
// -----------------------------
|
||||
float targetAngle = 0f;
|
||||
|
||||
if (sinkerOnBottom)
|
||||
{
|
||||
// 触底 → 判断是否能立漂
|
||||
if (netBuoyancy > bottomDrag)
|
||||
{
|
||||
targetAngle = 0f; // 立漂
|
||||
}
|
||||
else
|
||||
{
|
||||
// 躺漂
|
||||
targetAngle = maxLayAngle;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 铅坠在水中 → 漂直立
|
||||
targetAngle = 0f;
|
||||
}
|
||||
|
||||
// 平滑角度
|
||||
currentAngle = Mathf.Lerp(
|
||||
currentAngle,
|
||||
targetAngle,
|
||||
Time.deltaTime * (targetAngle == 0 ? uprightSpeed : angleLaySpeed)
|
||||
);
|
||||
|
||||
transform.rotation = Quaternion.Euler(currentAngle, 0, 0);
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// 外部控制接口
|
||||
// ----------------------------------------
|
||||
|
||||
public void TriggerDownPulse(float s = 0.8f)
|
||||
{
|
||||
impulseForce -= Mathf.Abs(s);
|
||||
}
|
||||
|
||||
public void TriggerUpPulse(float s = 0.8f)
|
||||
{
|
||||
impulseForce += Mathf.Abs(s);
|
||||
}
|
||||
|
||||
public void AddFishPull(float v)
|
||||
{
|
||||
sinkerWeight += v;
|
||||
}
|
||||
|
||||
public void ReleaseFishPull(float v)
|
||||
{
|
||||
sinkerWeight -= v;
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59f0b74408dbbfe44aee75e1ddf784d3
|
||||
@@ -1,206 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
public enum BobberState
|
||||
{
|
||||
LyingDown, // 躺漂
|
||||
RisingUp, // 起漂
|
||||
Standing, // 正常站立
|
||||
Bottom, // 挂底
|
||||
TopLift, // 顶漂
|
||||
DownPull, // 黑漂
|
||||
Nibble // 小顿口
|
||||
}
|
||||
|
||||
public class FloatBobberControllerProV4 : MonoBehaviour
|
||||
{
|
||||
[Header("Environment")]
|
||||
public float waterLevel = 0f;
|
||||
|
||||
[Header("Float Settings")]
|
||||
public float floatLength = 0.20f; // 漂总长度
|
||||
public float buoyancyForce = 0.35f; // 浮力强度
|
||||
public float mass = 0.015f; // 重量
|
||||
public float tiltRecoverySpeed = 3f; // 漂恢复垂直速度
|
||||
public float maxTiltAngle = 60f; // 躺漂最大角度
|
||||
|
||||
[Header("Line Settings")]
|
||||
public float lineTension = 0f; // 动态线张力(由鱼影响)
|
||||
public float bottomDrag = 1.5f; // 铅坠触底时的阻力
|
||||
|
||||
[Header("State Machine")]
|
||||
public BobberState state = BobberState.LyingDown;
|
||||
|
||||
// internal vars
|
||||
private float verticalSpeed = 0f;
|
||||
private float angle = 60f; // 初始躺漂角度
|
||||
private float lastHeight;
|
||||
private float deltaY;
|
||||
|
||||
void Start()
|
||||
{
|
||||
lastHeight = transform.position.y;
|
||||
state = BobberState.LyingDown;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
deltaY = transform.position.y - lastHeight;
|
||||
lastHeight = transform.position.y;
|
||||
|
||||
ApplyPhysics();
|
||||
ProcessStateMachine();
|
||||
ApplyRotation();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// 一切物理都由状态机控制
|
||||
// ---------------------------------------------------------------------
|
||||
void ProcessStateMachine()
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case BobberState.LyingDown:
|
||||
LyingDownBehaviour();
|
||||
break;
|
||||
|
||||
case BobberState.RisingUp:
|
||||
RisingUpBehaviour();
|
||||
break;
|
||||
|
||||
case BobberState.Standing:
|
||||
StandingBehaviour();
|
||||
break;
|
||||
|
||||
case BobberState.Bottom:
|
||||
BottomBehaviour();
|
||||
break;
|
||||
|
||||
case BobberState.TopLift:
|
||||
TopLiftBehaviour();
|
||||
break;
|
||||
|
||||
case BobberState.DownPull:
|
||||
DownPullBehaviour();
|
||||
break;
|
||||
|
||||
case BobberState.Nibble:
|
||||
NibbleBehaviour();
|
||||
break;
|
||||
}
|
||||
|
||||
AutoTransition();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// 【状态 → 行为】
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
void LyingDownBehaviour()
|
||||
{
|
||||
// 浮漂处于平躺,几乎无浮力
|
||||
angle = Mathf.Lerp(angle, maxTiltAngle, Time.deltaTime * 1.5f);
|
||||
|
||||
// 水面浮力很小
|
||||
verticalSpeed += (buoyancyForce * 0.1f - mass * 9.8f) * Time.deltaTime;
|
||||
}
|
||||
|
||||
void RisingUpBehaviour()
|
||||
{
|
||||
// 浮漂正在被浮力慢慢扶正
|
||||
angle = Mathf.Lerp(angle, 0, Time.deltaTime * (tiltRecoverySpeed * 0.7f));
|
||||
|
||||
// 浮力略加强
|
||||
verticalSpeed += (buoyancyForce * 0.5f) * Time.deltaTime;
|
||||
}
|
||||
|
||||
void StandingBehaviour()
|
||||
{
|
||||
// 完全立稳
|
||||
angle = Mathf.Lerp(angle, 0, Time.deltaTime * tiltRecoverySpeed);
|
||||
|
||||
// 浮力与重力平衡,小幅波动
|
||||
verticalSpeed += Mathf.Sin(Time.time * 4f) * 0.001f;
|
||||
}
|
||||
|
||||
void BottomBehaviour()
|
||||
{
|
||||
// 铅坠或饵触底 → 浮漂立不起来
|
||||
angle = Mathf.Lerp(angle, 20f, Time.deltaTime * 2f);
|
||||
|
||||
// 上浮被底部拖住
|
||||
verticalSpeed *= 0.6f;
|
||||
}
|
||||
|
||||
void TopLiftBehaviour()
|
||||
{
|
||||
// 顶漂 → 漂被往上托一点
|
||||
verticalSpeed += 0.02f;
|
||||
}
|
||||
|
||||
void DownPullBehaviour()
|
||||
{
|
||||
// 黑漂 → 往下猛拉
|
||||
verticalSpeed -= 0.05f;
|
||||
}
|
||||
|
||||
void NibbleBehaviour()
|
||||
{
|
||||
// 小顿口 → 轻微波动
|
||||
verticalSpeed += Mathf.Sin(Time.time * 20f) * 0.0015f;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// 状态自动切换
|
||||
// ---------------------------------------------------------------------
|
||||
void AutoTransition()
|
||||
{
|
||||
// 1. 浮漂露出 40% 以上 → 起漂或站漂
|
||||
float headHeight = transform.position.y + floatLength;
|
||||
|
||||
if (state == BobberState.LyingDown && headHeight > waterLevel - 0.02f)
|
||||
state = BobberState.RisingUp;
|
||||
|
||||
if (state == BobberState.RisingUp && angle < 12f)
|
||||
state = BobberState.Standing;
|
||||
|
||||
// 2. 挂底判定
|
||||
float tailHeight = transform.position.y - floatLength;
|
||||
if (tailHeight < waterLevel - 0.03f)
|
||||
state = BobberState.Bottom;
|
||||
|
||||
// 3. 顶漂
|
||||
if (deltaY > 0.015f)
|
||||
state = BobberState.TopLift;
|
||||
|
||||
// 4. 黑漂
|
||||
if (deltaY < -0.02f)
|
||||
state = BobberState.DownPull;
|
||||
|
||||
// 5. 小顿口
|
||||
if (Mathf.Abs(deltaY) > 0.003f && Mathf.Abs(deltaY) < 0.015f)
|
||||
state = BobberState.Nibble;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// 垂直物理
|
||||
// ---------------------------------------------------------------------
|
||||
void ApplyPhysics()
|
||||
{
|
||||
float submerged = Mathf.Clamp01((waterLevel - transform.position.y) * 8f);
|
||||
float upForce = buoyancyForce * submerged - mass * 9.8f;
|
||||
|
||||
verticalSpeed += upForce * Time.deltaTime;
|
||||
verticalSpeed = Mathf.Clamp(verticalSpeed, -0.2f, 0.2f);
|
||||
|
||||
transform.position += new Vector3(0, verticalSpeed, 0);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// 倾斜角控制
|
||||
// ---------------------------------------------------------------------
|
||||
void ApplyRotation()
|
||||
{
|
||||
Quaternion q = Quaternion.Euler(angle, 0, 0);
|
||||
transform.rotation = Quaternion.Slerp(transform.rotation, q, Time.deltaTime * 8f);
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 725d1d7ecc254c8a980d997ac7a9d5d3
|
||||
timeCreated: 1764166393
|
||||
219
Assets/Scripts/Test/BobberFloating.cs
Normal file
219
Assets/Scripts/Test/BobberFloating.cs
Normal file
@@ -0,0 +1,219 @@
|
||||
using UnityEngine;
|
||||
using WaveHarmonic.Crest;
|
||||
|
||||
namespace NBF
|
||||
{
|
||||
public sealed class BobberFloating : MonoBehaviour
|
||||
{
|
||||
public WaterRenderer _water;
|
||||
|
||||
[SerializeField] Rigidbody _RigidBody;
|
||||
|
||||
[Tooltip("要瞄准哪一层水的碰撞层。")] [SerializeField]
|
||||
CollisionLayer _Layer = CollisionLayer.AfterAnimatedWaves;
|
||||
|
||||
[Header("浮力")]
|
||||
[Header("力强度")]
|
||||
[Tooltip("对于探测器而言,大致为 100 比 1 的质量与力的比例,以使质心保持在表面附近。对于“对齐法线”,默认值适用于具有默认刚体的默认球体。")]
|
||||
[SerializeField]
|
||||
float _BuoyancyForceStrength = 10f;
|
||||
|
||||
[Header("扭矩强度")] [Tooltip("使船体方向与水的法线方向一致时所施加扭矩的大小。")] [SerializeField]
|
||||
float _BuoyancyTorqueStrength = 8f;
|
||||
|
||||
[Header("最大力矩")] [Tooltip("将浮力值固定在此数值上。\n\n适用于处理完全浸没的物体。")] [SerializeField]
|
||||
float _MaximumBuoyancyForce = 100f;
|
||||
|
||||
[Header("高度偏移")] [Tooltip("从变换中心到船体底部的高度偏移(如果存在)。\n\n默认值适用于默认球体。该值无需精确测量从中心到底部的距离。")] [SerializeField]
|
||||
float _CenterToBottomOffset = -1f;
|
||||
|
||||
[Tooltip("顺着波浪 “冲浪” 的近似流体动力学效果。")] [Range(0, 1)] [SerializeField]
|
||||
float _AccelerateDownhill;
|
||||
|
||||
|
||||
[Header("拖拽")] [Tooltip("在水中时使用拖拽功能。\n将此属性添加到刚体所声明的拖拽力上。")] [SerializeField]
|
||||
Vector3 _Drag = new(2f, 3f, 1f);
|
||||
|
||||
[Tooltip("在水中会产生旋转阻力。\n\n将此阻力添加到刚体上已声明的旋转阻力值之上。")] [SerializeField]
|
||||
float _AngularDrag = 0.2f;
|
||||
|
||||
[Tooltip("施加拉力的位置的垂直偏移量。")] [SerializeField]
|
||||
float _ForceHeightOffset;
|
||||
|
||||
|
||||
[Header("波响应")] [Tooltip("用于物理计算的物体宽度。\n\n此值越大,波响应的滤波效果和平滑程度就越高。如果无法对较大波长进行滤波,则应增加 LOD 级别。")] [SerializeField]
|
||||
float _ObjectWidth = 3f;
|
||||
|
||||
|
||||
// Debug
|
||||
[Space(10)] [SerializeField] DebugFields _Debug = new();
|
||||
|
||||
[System.Serializable]
|
||||
sealed class DebugFields
|
||||
{
|
||||
[SerializeField] internal bool _DrawQueries = false;
|
||||
}
|
||||
|
||||
internal const string k_FixedUpdateMarker = "Crest.FloatingObject.FixedUpdate";
|
||||
|
||||
static Unity.Profiling.ProfilerMarker s_FixedUpdateMarker = new(k_FixedUpdateMarker);
|
||||
|
||||
/// <summary>
|
||||
/// 这个物体的任何部分是否浸泡在水中?
|
||||
/// </summary>
|
||||
public bool InWater { get; private set; }
|
||||
|
||||
readonly SampleFlowHelper _SampleFlowHelper = new();
|
||||
|
||||
Vector3[] _QueryPoints;
|
||||
Vector3[] _QueryResultDisplacements;
|
||||
Vector3[] _QueryResultVelocities;
|
||||
Vector3[] _QueryResultNormal;
|
||||
|
||||
internal FloatingObjectProbe[] _Probe = new FloatingObjectProbe[] { new() { _Weight = 1f } };
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (_RigidBody == null) TryGetComponent(out _RigidBody);
|
||||
|
||||
var points = _Probe;
|
||||
// Advanced 还需要为中心增设一个位置。
|
||||
var length = points.Length;
|
||||
_QueryPoints = new Vector3[length];
|
||||
_QueryResultDisplacements = new Vector3[length];
|
||||
_QueryResultVelocities = new Vector3[length];
|
||||
_QueryResultNormal = new Vector3[length];
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
s_FixedUpdateMarker.Begin(this);
|
||||
|
||||
var points = _Probe;
|
||||
|
||||
// 查询
|
||||
var collisions = _water.AnimatedWavesLod.Provider;
|
||||
|
||||
// 更新查询点。
|
||||
for (var i = 0; i < points.Length; i++)
|
||||
{
|
||||
var point = points[i];
|
||||
_QueryPoints[i] =
|
||||
transform.TransformPoint(point._Position + new Vector3(0, _RigidBody.centerOfMass.y, 0));
|
||||
}
|
||||
|
||||
_QueryPoints[^1] = transform.position + new Vector3(0, _RigidBody.centerOfMass.y, 0);
|
||||
|
||||
collisions.Query(GetHashCode(), _ObjectWidth, _QueryPoints, _QueryResultDisplacements,
|
||||
_QueryResultNormal, _QueryResultVelocities, _Layer);
|
||||
|
||||
|
||||
//我们可以将表面速度过滤为最近两帧中的较小值。
|
||||
//存在一种极端情况:当波长被开启 / 关闭时,会产生单帧速度尖峰——
|
||||
//因为此时水面确实会发生极快的运动。
|
||||
var surfaceVelocity = _QueryResultVelocities[^1];
|
||||
_SampleFlowHelper.Sample(transform.position, out var surfaceFlow, minimumLength: _ObjectWidth);
|
||||
surfaceVelocity += new Vector3(surfaceFlow.x, 0, surfaceFlow.y);
|
||||
|
||||
if (_Debug._DrawQueries)
|
||||
{
|
||||
Debug.DrawLine(transform.position + 5f * Vector3.up,
|
||||
transform.position + 5f * Vector3.up + surfaceVelocity, new(1, 1, 1, 0.6f));
|
||||
}
|
||||
|
||||
{
|
||||
var height = _QueryResultDisplacements[0].y + _water.SeaLevel;
|
||||
var bottomDepth = height - transform.position.y - _CenterToBottomOffset;
|
||||
var normal = _QueryResultNormal[0];
|
||||
|
||||
if (_Debug._DrawQueries)
|
||||
{
|
||||
var surfPos = transform.position;
|
||||
surfPos.y = height;
|
||||
DebugUtility.DrawCross(Debug.DrawLine, surfPos, normal, 1f, Color.red);
|
||||
}
|
||||
|
||||
InWater = bottomDepth > 0f;
|
||||
if (!InWater)
|
||||
{
|
||||
s_FixedUpdateMarker.End();
|
||||
return;
|
||||
}
|
||||
|
||||
var buoyancy = _BuoyancyForceStrength * bottomDepth * bottomDepth * bottomDepth *
|
||||
-Physics.gravity.normalized;
|
||||
if (_MaximumBuoyancyForce < Mathf.Infinity)
|
||||
{
|
||||
buoyancy = Vector3.ClampMagnitude(buoyancy, _MaximumBuoyancyForce);
|
||||
}
|
||||
|
||||
_RigidBody.AddForce(buoyancy, ForceMode.Acceleration);
|
||||
|
||||
// 在水面上滑行的近似流体动力学
|
||||
if (_AccelerateDownhill > 0f)
|
||||
{
|
||||
_RigidBody.AddForce(_AccelerateDownhill * -Physics.gravity.y * new Vector3(normal.x, 0f, normal.z),
|
||||
ForceMode.Acceleration);
|
||||
}
|
||||
|
||||
|
||||
// 朝向
|
||||
// 与水面垂直。默认使用一个垂直方向,但也可以使用单独的垂直方向。
|
||||
// 根据船的长度与宽度的比例。这会根据船只的不同而产生不同的旋转效果。
|
||||
// dimensions.
|
||||
{
|
||||
var normalLatitudinal = normal;
|
||||
|
||||
if (_Debug._DrawQueries)
|
||||
Debug.DrawLine(transform.position, transform.position + 5f * normalLatitudinal, Color.green);
|
||||
|
||||
var torqueWidth = Vector3.Cross(transform.up, normalLatitudinal);
|
||||
_RigidBody.AddTorque(torqueWidth * _BuoyancyTorqueStrength, ForceMode.Acceleration);
|
||||
_RigidBody.AddTorque(-_AngularDrag * _RigidBody.angularVelocity);
|
||||
}
|
||||
}
|
||||
|
||||
// 相对于水进行拖拽操作
|
||||
if (_Drag != Vector3.zero)
|
||||
{
|
||||
var velocityRelativeToWater = _RigidBody.linearVelocity - surfaceVelocity;
|
||||
|
||||
var forcePosition = _RigidBody.worldCenterOfMass + _ForceHeightOffset * Vector3.up;
|
||||
_RigidBody.AddForceAtPosition(
|
||||
_Drag.x * Vector3.Dot(transform.right, -velocityRelativeToWater) * transform.right, forcePosition,
|
||||
ForceMode.Acceleration);
|
||||
_RigidBody.AddForceAtPosition(_Drag.y * Vector3.Dot(Vector3.up, -velocityRelativeToWater) * Vector3.up,
|
||||
forcePosition, ForceMode.Acceleration);
|
||||
_RigidBody.AddForceAtPosition(
|
||||
_Drag.z * Vector3.Dot(transform.forward, -velocityRelativeToWater) * transform.forward,
|
||||
forcePosition, ForceMode.Acceleration);
|
||||
}
|
||||
|
||||
s_FixedUpdateMarker.End();
|
||||
}
|
||||
}
|
||||
|
||||
static class DebugUtility
|
||||
{
|
||||
public delegate void DrawLine(Vector3 position, Vector3 up, Color color, float duration);
|
||||
|
||||
public static void DrawCross(DrawLine draw, Vector3 position, float r, Color color, float duration = 0f)
|
||||
{
|
||||
draw(position - Vector3.up * r, position + Vector3.up * r, color, duration);
|
||||
draw(position - Vector3.right * r, position + Vector3.right * r, color, duration);
|
||||
draw(position - Vector3.forward * r, position + Vector3.forward * r, color, duration);
|
||||
}
|
||||
|
||||
public static void DrawCross(DrawLine draw, Vector3 position, Vector3 up, float r, Color color,
|
||||
float duration = 0f)
|
||||
{
|
||||
up.Normalize();
|
||||
var right = Vector3.Normalize(Vector3.Cross(up, Vector3.forward));
|
||||
var forward = Vector3.Cross(up, right);
|
||||
draw(position - up * r, position + up * r, color, duration);
|
||||
draw(position - right * r, position + right * r, color, duration);
|
||||
draw(position - forward * r, position + forward * r, color, duration);
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Test/BobberFloating.cs.meta
Normal file
3
Assets/Scripts/Test/BobberFloating.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c103db8c4b014d87845103a400b1ace5
|
||||
timeCreated: 1772159688
|
||||
@@ -1,209 +0,0 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(Rigidbody))]
|
||||
public class Buoyancy : MonoBehaviour
|
||||
{
|
||||
// ====== No water plugin dependency ======
|
||||
[Header("Water (No Plugin)")]
|
||||
[Tooltip("Fallback flat water level (Y). Set this to match your scene water height for now.")]
|
||||
public float waterLevel = 0f;
|
||||
|
||||
[Tooltip("If false, buoyancy is disabled and rigidbody uses gravity.")]
|
||||
public bool waterAvailable = true;
|
||||
|
||||
// ====== Original fields (kept) ======
|
||||
public bool includeDeformation = true;
|
||||
|
||||
[Tooltip("Approxative radius of object for buoyancy.")]
|
||||
public float sphereRadiusApproximation = 0.25f;
|
||||
|
||||
[Tooltip("Specifies the multiplier for the movement induced by other deformation (waves, swell... etc).")]
|
||||
public float waveForceMultiplier = 1f;
|
||||
|
||||
[Tooltip("Specifies the multiplier for the movement induced by the current of the water surface.")]
|
||||
public float currentSpeedMultiplier = 1f;
|
||||
|
||||
[Tooltip("Specifies the multiplier for the drag forces induced by the viscosity of the mediums.")]
|
||||
public float dragMultiplier = 1f;
|
||||
|
||||
public float defaultRigidbodyDrag = 0.1f;
|
||||
|
||||
public float underwaterRigidbodyAngularDrag = 1f;
|
||||
|
||||
public float overwaterRigidbodyAngularDrag = 0.05f;
|
||||
|
||||
[Tooltip("Specifies the value for surface tension. A high value will stop the object bouncing faster on water.")]
|
||||
public float surfaceTensionDamping = 10f;
|
||||
|
||||
[Tooltip("When enabled, the net force is applied with a random offset to create an angular velocity.")]
|
||||
public bool applyForceWithRandomOffset;
|
||||
|
||||
// 原脚本里这个是 HDRP 的“自定义网格水面高度偏移”,这里保留字段但不再依赖水插件
|
||||
[Tooltip("Optional extra offset added to sampled water height. Useful if your water mesh pivot isn't at surface level.")]
|
||||
public float waterHeightOffset = 0f;
|
||||
|
||||
public bool drawDebug;
|
||||
|
||||
private Vector3 currentDirection;
|
||||
private Vector3 A;
|
||||
private Vector3 B;
|
||||
private Vector3 C;
|
||||
private Vector3 waterPosition;
|
||||
private Vector3 normal;
|
||||
private Vector3 deformationDirection;
|
||||
|
||||
private Rigidbody rigidbodyComponent;
|
||||
|
||||
private float h;
|
||||
private float hNormalized;
|
||||
|
||||
private bool _isEnabled = true;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
rigidbodyComponent = GetComponent<Rigidbody>();
|
||||
rigidbodyComponent.useGravity = false;
|
||||
rigidbodyComponent.linearDamping = defaultRigidbodyDrag;
|
||||
}
|
||||
|
||||
public void EnablePhysics(bool set)
|
||||
{
|
||||
_isEnabled = set;
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
// ✅ 关键:没有水 / 禁用时,回到“用Unity重力”
|
||||
if (!_isEnabled || !waterAvailable)
|
||||
{
|
||||
h = (hNormalized = 0f);
|
||||
rigidbodyComponent.useGravity = true;
|
||||
return;
|
||||
}
|
||||
|
||||
rigidbodyComponent.useGravity = false;
|
||||
|
||||
FetchWaterSurfaceData(transform.position, out waterPosition, out normal, out currentDirection);
|
||||
|
||||
deformationDirection = Vector3.ProjectOnPlane(normal, Vector3.up);
|
||||
|
||||
h = Mathf.Clamp(
|
||||
waterPosition.y - (transform.position.y - sphereRadiusApproximation),
|
||||
0f,
|
||||
2f * sphereRadiusApproximation
|
||||
);
|
||||
|
||||
hNormalized = h * 1f / (2f * sphereRadiusApproximation);
|
||||
|
||||
float num = MathF.PI * h * h / 3f * (3f * sphereRadiusApproximation - h);
|
||||
|
||||
rigidbodyComponent.angularDamping = Mathf.Lerp(overwaterRigidbodyAngularDrag, underwaterRigidbodyAngularDrag, hNormalized);
|
||||
|
||||
// === 以下保持原脚本单位/写法(尽量贴近原行为) ===
|
||||
Vector3 b = rigidbodyComponent.mass * Physics.gravity;
|
||||
Vector3 vector = Vector3.Lerp(Physics.gravity, b, hNormalized);
|
||||
|
||||
float num2 = 997f;
|
||||
float num3 = 0.001293f;
|
||||
float num4 = 1.81E-05f;
|
||||
float num5 = 0.001f;
|
||||
float num6 = 0.47f;
|
||||
|
||||
Vector3 vector2 = (0f - num2) * num * Physics.gravity;
|
||||
|
||||
Vector3 a = MathF.PI * 6f * sphereRadiusApproximation * num4 * -rigidbodyComponent.linearVelocity;
|
||||
Vector3 b2 = MathF.PI * 6f * sphereRadiusApproximation * num5 * -rigidbodyComponent.linearVelocity;
|
||||
Vector3 vector3 = Vector3.Lerp(a, b2, hNormalized) * dragMultiplier;
|
||||
|
||||
float num7 = Mathf.Lerp(
|
||||
b: Mathf.Sqrt(2f * rigidbodyComponent.mass * (0f - Physics.gravity.y) /
|
||||
(num2 * MathF.PI * Mathf.Pow(sphereRadiusApproximation, 2f) * num6)),
|
||||
a: Mathf.Sqrt(2f * rigidbodyComponent.mass * (0f - Physics.gravity.y) /
|
||||
(num3 * MathF.PI * Mathf.Pow(sphereRadiusApproximation, 2f) * num6)),
|
||||
t: hNormalized
|
||||
);
|
||||
|
||||
Vector3 force = vector + vector2 + vector3;
|
||||
|
||||
Vector3 vector4 = applyForceWithRandomOffset
|
||||
? (new Vector3(
|
||||
UnityEngine.Random.Range(-1f, 1f),
|
||||
UnityEngine.Random.Range(-1f, 1f),
|
||||
UnityEngine.Random.Range(-1f, 1f)
|
||||
) * sphereRadiusApproximation / 5f)
|
||||
: Vector3.zero;
|
||||
|
||||
rigidbodyComponent.AddForceAtPosition(force, transform.position + vector4, ForceMode.Acceleration);
|
||||
|
||||
if (hNormalized > 0f && hNormalized < 1f)
|
||||
{
|
||||
Vector3 force2 = -(Vector3.Dot(rigidbodyComponent.linearVelocity, Physics.gravity.normalized)
|
||||
* Physics.gravity.normalized) * surfaceTensionDamping;
|
||||
|
||||
rigidbodyComponent.AddForce(force2, ForceMode.Acceleration);
|
||||
|
||||
if (includeDeformation)
|
||||
{
|
||||
rigidbodyComponent.AddForce(deformationDirection * waveForceMultiplier, ForceMode.Acceleration);
|
||||
rigidbodyComponent.AddForce(currentDirection * currentSpeedMultiplier, ForceMode.Acceleration);
|
||||
}
|
||||
}
|
||||
|
||||
if (rigidbodyComponent.linearVelocity.magnitude > num7)
|
||||
{
|
||||
rigidbodyComponent.linearVelocity = rigidbodyComponent.linearVelocity.normalized * num7;
|
||||
}
|
||||
}
|
||||
|
||||
private Vector3 FetchWaterSurfaceData(Vector3 point, out Vector3 positionWS, out Vector3 normalWS, out Vector3 currentDirectionWS)
|
||||
{
|
||||
// ✅ 插件无关:统一从 GetWaterInfo 拿数据
|
||||
GetWaterInfo(point, out float waterHeight, out normalWS, out currentDirectionWS);
|
||||
|
||||
positionWS = new Vector3(point.x, waterHeight + waterHeightOffset, point.z);
|
||||
|
||||
if (normalWS == Vector3.zero) normalWS = Vector3.up;
|
||||
|
||||
return positionWS;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Water provider (no plugin dependency).
|
||||
/// 默认:水平水面,高度 = waterLevel
|
||||
/// 以后接 Crest5:你只要改这个函数即可。
|
||||
/// </summary>
|
||||
protected virtual void GetWaterInfo(Vector3 worldPoint, out float waterHeight, out Vector3 waterNormal, out Vector3 waterCurrentDir)
|
||||
{
|
||||
waterHeight = waterLevel; // 默认水面高度(可在Inspector里调对齐)
|
||||
waterNormal = Vector3.up; // 默认法线
|
||||
waterCurrentDir = Vector3.zero; // 默认水流方向
|
||||
}
|
||||
|
||||
public Vector3 GetCurrentWaterPosition() => waterPosition;
|
||||
|
||||
public float GetNormalizedHeightOfSphereBelowSurface() => hNormalized;
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
if (!drawDebug) return;
|
||||
|
||||
Gizmos.color = Color.magenta;
|
||||
Gizmos.DrawLine(transform.position, transform.position + normal);
|
||||
|
||||
Gizmos.color = Color.green;
|
||||
Gizmos.DrawLine(transform.position, transform.position + deformationDirection * 10f);
|
||||
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawLine(transform.position, transform.position + currentDirection);
|
||||
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawSphere(transform.position, sphereRadiusApproximation);
|
||||
|
||||
Gizmos.color = Color.blue;
|
||||
Gizmos.DrawSphere(A, sphereRadiusApproximation / 10f);
|
||||
Gizmos.DrawSphere(B, sphereRadiusApproximation / 10f);
|
||||
Gizmos.DrawSphere(C, sphereRadiusApproximation / 10f);
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd1aa9f0de8b435448c6893ecc60d021
|
||||
@@ -1,16 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
public interface IWaterHeightProvider
|
||||
{
|
||||
/// <summary>返回 worldPos 位置的水面高度(Y)</summary>
|
||||
float GetWaterHeight(Vector3 worldPos);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 最简单的水面:固定平面(适合先跑通逻辑)
|
||||
/// </summary>
|
||||
public class FlatWaterHeightProvider : MonoBehaviour, IWaterHeightProvider
|
||||
{
|
||||
public float waterY = 0f;
|
||||
public float GetWaterHeight(Vector3 worldPos) => waterY;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1300e9b5a5c347408708087176324c0
|
||||
@@ -1,370 +0,0 @@
|
||||
// using UnityEngine;
|
||||
//
|
||||
// [DisallowMultipleComponent]
|
||||
// public class FloatBobberController : MonoBehaviour
|
||||
// {
|
||||
// public enum FloatState
|
||||
// {
|
||||
// FreePhysics, // 正常物理
|
||||
// Standing, // 站漂(可选:更“稳”的物理态)
|
||||
// Laying, // 躺漂(浮力过大/出水过多)
|
||||
// AnimBite // 漂相动画接管:黑漂/顿漂/移漂/顶漂
|
||||
// }
|
||||
//
|
||||
// public enum BiteType
|
||||
// {
|
||||
// Black, // 黑漂:快速下沉
|
||||
// Dip, // 顿漂:下压一下回弹
|
||||
// Move, // 移漂:水平拖动
|
||||
// Lift // 顶漂:上顶(上浮)
|
||||
// }
|
||||
//
|
||||
// [Header("Refs")]
|
||||
// public Rigidbody rb;
|
||||
// public ConfigurableJoint joint; // 浮漂与鱼钩端连接的 joint
|
||||
// public MonoBehaviour waterProviderMB; // 拖一个实现 IWaterHeightProvider 的组件(如 FlatWaterHeightProvider / KWS适配器)
|
||||
// private IWaterHeightProvider water;
|
||||
//
|
||||
// [Header("Buoyancy")]
|
||||
// [Tooltip("浮漂的有效高度(决定淹没比例计算)")]
|
||||
// public float floatHeight = 0.18f;
|
||||
// [Tooltip("浮力系数(越大越容易浮起)")]
|
||||
// public float buoyancy = 18f;
|
||||
// [Tooltip("水中阻尼(抑制乱抖/失控)")]
|
||||
// public float waterDrag = 2.0f;
|
||||
// [Tooltip("水中角阻尼")]
|
||||
// public float waterAngularDrag = 2.0f;
|
||||
//
|
||||
// [Header("Auto Lay (躺漂判定)")]
|
||||
// [Tooltip("出水比例超过这个值(0~1),且浮力明显大于重力时,进入躺漂")]
|
||||
// [Range(0f, 1f)] public float tooMuchOutOfWater01 = 0.55f;
|
||||
// [Tooltip("浮力/重力比超过该值,认为浮力过大(更容易躺漂)")]
|
||||
// public float buoyancyOverGravityToLay = 1.15f;
|
||||
// [Tooltip("躺漂时目标倾角(度)")]
|
||||
// public float layTiltAngle = 75f;
|
||||
// [Tooltip("躺漂倾斜速度")]
|
||||
// public float layTiltSpeed = 6f;
|
||||
//
|
||||
// [Header("Joint Drive (用于动画接管)")]
|
||||
// public float animDriveSpring = 1200f;
|
||||
// public float animDriveDamper = 120f;
|
||||
// public float animMaxForce = 10000f;
|
||||
//
|
||||
// [Header("Bite Animation Settings")]
|
||||
// public BiteAnim black = new BiteAnim
|
||||
// {
|
||||
// duration = 0.35f,
|
||||
// verticalOffset = -0.14f,
|
||||
// curve = AnimationCurve.EaseInOut(0, 0, 1, 1)
|
||||
// };
|
||||
//
|
||||
// public BiteAnim dip = new BiteAnim
|
||||
// {
|
||||
// duration = 0.55f,
|
||||
// verticalOffset = -0.08f,
|
||||
// curve = new AnimationCurve(
|
||||
// new Keyframe(0, 0),
|
||||
// new Keyframe(0.25f, 1f),
|
||||
// new Keyframe(0.6f, 0.2f),
|
||||
// new Keyframe(1f, 0)
|
||||
// )
|
||||
// };
|
||||
//
|
||||
// public BiteAnim lift = new BiteAnim
|
||||
// {
|
||||
// duration = 0.6f,
|
||||
// verticalOffset = +0.06f,
|
||||
// curve = new AnimationCurve(
|
||||
// new Keyframe(0, 0),
|
||||
// new Keyframe(0.3f, 1f),
|
||||
// new Keyframe(1f, 0)
|
||||
// )
|
||||
// };
|
||||
//
|
||||
// public BiteAnim move = new BiteAnim
|
||||
// {
|
||||
// duration = 0.9f,
|
||||
// horizontalOffset = 0.18f,
|
||||
// curve = AnimationCurve.EaseInOut(0, 0, 1, 1)
|
||||
// };
|
||||
//
|
||||
// [System.Serializable]
|
||||
// public struct BiteAnim
|
||||
// {
|
||||
// public float duration;
|
||||
// public AnimationCurve curve;
|
||||
// [Tooltip("相对水面的竖直偏移幅度(m),负数=下沉,正数=上顶")]
|
||||
// public float verticalOffset;
|
||||
// [Tooltip("水平偏移幅度(m),用于移漂(沿 forward 或指定方向)")]
|
||||
// public float horizontalOffset;
|
||||
// }
|
||||
//
|
||||
// [Header("Runtime")]
|
||||
// public FloatState state = FloatState.FreePhysics;
|
||||
//
|
||||
// // 内部:动画接管
|
||||
// private BiteType currentBite;
|
||||
// private float biteT;
|
||||
// private float biteDuration;
|
||||
// private BiteAnim biteAnim;
|
||||
// private Vector3 biteDirWorld; // 移漂方向
|
||||
// private Vector3 jointBaseTargetPos;
|
||||
// private bool jointHadTarget;
|
||||
//
|
||||
// private void Reset()
|
||||
// {
|
||||
// rb = GetComponent<Rigidbody>();
|
||||
// joint = GetComponent<ConfigurableJoint>();
|
||||
// }
|
||||
//
|
||||
// private void Awake()
|
||||
// {
|
||||
// if (!rb) rb = GetComponent<Rigidbody>();
|
||||
// if (!joint) joint = GetComponent<ConfigurableJoint>();
|
||||
//
|
||||
// water = waterProviderMB as IWaterHeightProvider;
|
||||
// if (water == null && waterProviderMB != null)
|
||||
// water = waterProviderMB.GetComponent<IWaterHeightProvider>();
|
||||
//
|
||||
// // joint 初始化建议(确保 targetPosition 驱动生效)
|
||||
// if (joint)
|
||||
// {
|
||||
// joint.configuredInWorldSpace = false; // targetPosition 在 joint 的本地坐标系更稳定
|
||||
// joint.rotationDriveMode = RotationDriveMode.Slerp;
|
||||
//
|
||||
// // 建议锁住角度,避免动画接管时乱拧;如果你需要漂转向可放开
|
||||
// joint.angularXMotion = ConfigurableJointMotion.Locked;
|
||||
// joint.angularYMotion = ConfigurableJointMotion.Locked;
|
||||
// joint.angularZMotion = ConfigurableJointMotion.Locked;
|
||||
//
|
||||
// // 位置建议:X/Z 限制,Y 可自由(看你钓组结构)
|
||||
// // 这里不强制修改,你项目里如果已经配好了就别动
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private void FixedUpdate()
|
||||
// {
|
||||
// if (water == null)
|
||||
// {
|
||||
// // 没水面采样就只能纯物理
|
||||
// state = FloatState.FreePhysics;
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Vector3 pos = rb.position;
|
||||
// float waterY = water.GetWaterHeight(pos);
|
||||
//
|
||||
// // 计算淹没比例:以浮漂中心为基准,上下 floatHeight/2
|
||||
// float topY = pos.y + floatHeight * 0.5f;
|
||||
// float bottomY = pos.y - floatHeight * 0.5f;
|
||||
//
|
||||
// float submerged01 = 0f;
|
||||
// if (waterY <= bottomY) submerged01 = 0f;
|
||||
// else if (waterY >= topY) submerged01 = 1f;
|
||||
// else submerged01 = Mathf.InverseLerp(bottomY, topY, waterY);
|
||||
//
|
||||
// float outOfWater01 = 1f - submerged01;
|
||||
//
|
||||
// // 基础浮力 & 阻尼(只在水中起作用)
|
||||
// ApplyBuoyancy(submerged01, waterY);
|
||||
//
|
||||
// // 躺漂判定(只在非动画接管时)
|
||||
// if (state != FloatState.AnimBite)
|
||||
// {
|
||||
// bool shouldLay = ShouldLay(outOfWater01, submerged01);
|
||||
// if (shouldLay)
|
||||
// state = FloatState.Laying;
|
||||
// else
|
||||
// state = FloatState.FreePhysics; // 你也可以在这里细分 Standing
|
||||
// }
|
||||
//
|
||||
// // 状态行为
|
||||
// switch (state)
|
||||
// {
|
||||
// case FloatState.Laying:
|
||||
// DoLay(waterY);
|
||||
// break;
|
||||
//
|
||||
// case FloatState.AnimBite:
|
||||
// DoBiteAnim(waterY);
|
||||
// break;
|
||||
//
|
||||
// default:
|
||||
// // 正常物理时恢复 joint drive(避免被动画参数影响)
|
||||
// RestoreJointDriveIfNeeded();
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private void ApplyBuoyancy(float submerged01, float waterY)
|
||||
// {
|
||||
// // 水中阻尼:淹没越多阻尼越强
|
||||
// rb.linearDamping = Mathf.Lerp(rb.linearDamping, submerged01 > 0 ? waterDrag : 0f, 0.25f);
|
||||
// rb.angularDamping = Mathf.Lerp(rb.angularDamping, submerged01 > 0 ? waterAngularDrag : 0.05f, 0.25f);
|
||||
//
|
||||
// if (submerged01 <= 0f) return;
|
||||
//
|
||||
// // 浮力:与淹没比例近似线性(你也可以换成平方让“接近全淹没时更强”)
|
||||
// float g = Physics.gravity.magnitude;
|
||||
// float buoyForce = buoyancy * submerged01;
|
||||
//
|
||||
// // 让浮力作用点略低于中心,产生一点“站漂”稳定性(可选)
|
||||
// Vector3 forcePoint = rb.worldCenterOfMass + Vector3.down * (floatHeight * 0.15f);
|
||||
//
|
||||
// rb.AddForceAtPosition(Vector3.up * buoyForce, forcePoint, ForceMode.Force);
|
||||
//
|
||||
// // 额外:把浮漂轻轻拉向水面(避免小抖导致上下乱跳)
|
||||
// float surfacePull = 6f * submerged01;
|
||||
// float yError = waterY - rb.position.y;
|
||||
// rb.AddForce(Vector3.up * (yError * surfacePull), ForceMode.Force);
|
||||
// }
|
||||
//
|
||||
// private bool ShouldLay(float outOfWater01, float submerged01)
|
||||
// {
|
||||
// if (submerged01 <= 0f) return false;
|
||||
//
|
||||
// // “浮力/重力”粗判:浮力系数与质量、g相关
|
||||
// float gravityForce = rb.mass * Physics.gravity.magnitude;
|
||||
// // 这里的 buoyancy 是 ForceMode.Force 下的“牛顿”,所以直接比值即可
|
||||
// float buoyForceAtFull = buoyancy; // submerged=1 时
|
||||
// float ratio = buoyForceAtFull / Mathf.Max(0.0001f, gravityForce);
|
||||
//
|
||||
// return (outOfWater01 >= tooMuchOutOfWater01) && (ratio >= buoyancyOverGravityToLay);
|
||||
// }
|
||||
//
|
||||
// private void DoLay(float waterY)
|
||||
// {
|
||||
// // 躺漂:把浮漂慢慢倾斜到 layTiltAngle,同时让它更贴近水面
|
||||
// Quaternion targetRot = Quaternion.AngleAxis(layTiltAngle, transform.right) * Quaternion.LookRotation(transform.forward, Vector3.up);
|
||||
// rb.MoveRotation(Quaternion.Slerp(rb.rotation, targetRot, layTiltSpeed * Time.fixedDeltaTime));
|
||||
//
|
||||
// // 贴近水面一点(不要完全锁死,保持自然)
|
||||
// float targetY = waterY + floatHeight * 0.15f;
|
||||
// Vector3 p = rb.position;
|
||||
// p.y = Mathf.Lerp(p.y, targetY, 3f * Time.fixedDeltaTime);
|
||||
// rb.MovePosition(p);
|
||||
//
|
||||
// RestoreJointDriveIfNeeded();
|
||||
// }
|
||||
//
|
||||
// private void DoBiteAnim(float waterY)
|
||||
// {
|
||||
// biteT += Time.fixedDeltaTime;
|
||||
// float t01 = (biteDuration <= 0.0001f) ? 1f : Mathf.Clamp01(biteT / biteDuration);
|
||||
// float k = biteAnim.curve != null ? biteAnim.curve.Evaluate(t01) : t01;
|
||||
//
|
||||
// // 目标偏移:相对水面
|
||||
// float yOff = biteAnim.verticalOffset * k;
|
||||
// float xzOff = biteAnim.horizontalOffset * k;
|
||||
//
|
||||
// // 用 joint.targetPosition 驱动:更像“鱼线/钓组拉着漂走/压漂”
|
||||
// if (joint)
|
||||
// {
|
||||
// EnsureJointDriveForAnim();
|
||||
//
|
||||
// // joint.targetPosition 是在 joint space(本地)
|
||||
// // 这里做一个“基准 targetPosition + 偏移”,基准取进入动画时的 targetPosition
|
||||
// Vector3 target = jointBaseTargetPos;
|
||||
//
|
||||
// // 竖直:沿 joint 的 local Y
|
||||
// target += Vector3.up * yOff;
|
||||
//
|
||||
// // 移漂:我们用世界方向投到 joint 的 local XZ(近似)
|
||||
// if (currentBite == BiteType.Move && xzOff != 0f)
|
||||
// {
|
||||
// Vector3 worldOffset = biteDirWorld.normalized * xzOff;
|
||||
// Vector3 localOffset = transform.InverseTransformVector(worldOffset);
|
||||
// target += new Vector3(localOffset.x, 0f, localOffset.z);
|
||||
// }
|
||||
//
|
||||
// joint.targetPosition = target;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 没 joint 就退化:用 MovePosition 做受控位移(稳定但不如 joint 自然)
|
||||
// Vector3 p = rb.position;
|
||||
// p.y = Mathf.Lerp(p.y, waterY + yOff, 12f * Time.fixedDeltaTime);
|
||||
// if (currentBite == BiteType.Move && xzOff != 0f)
|
||||
// p += biteDirWorld.normalized * (xzOff * 0.2f); // 轻推
|
||||
// rb.MovePosition(p);
|
||||
// }
|
||||
//
|
||||
// // 动画结束,回到物理
|
||||
// if (t01 >= 1f)
|
||||
// {
|
||||
// state = FloatState.FreePhysics;
|
||||
// RestoreJointDriveIfNeeded();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private void EnsureJointDriveForAnim()
|
||||
// {
|
||||
// if (!joint) return;
|
||||
//
|
||||
// if (!jointHadTarget)
|
||||
// {
|
||||
// jointHadTarget = true;
|
||||
// jointBaseTargetPos = joint.targetPosition;
|
||||
// }
|
||||
//
|
||||
// // 只设置一次也行,这里每次保证一致
|
||||
// JointDrive d = new JointDrive
|
||||
// {
|
||||
// positionSpring = animDriveSpring,
|
||||
// positionDamper = animDriveDamper,
|
||||
// maximumForce = animMaxForce
|
||||
// };
|
||||
//
|
||||
// joint.xDrive = d;
|
||||
// joint.yDrive = d;
|
||||
// joint.zDrive = d;
|
||||
// }
|
||||
//
|
||||
// private void RestoreJointDriveIfNeeded()
|
||||
// {
|
||||
// // 退出动画时恢复基准 target(避免残留偏移)
|
||||
// if (!joint) return;
|
||||
// if (!jointHadTarget) return;
|
||||
//
|
||||
// // 慢慢回到基准 targetPosition(更平滑)
|
||||
// joint.targetPosition = Vector3.Lerp(joint.targetPosition, jointBaseTargetPos, 8f * Time.fixedDeltaTime);
|
||||
//
|
||||
// // 当接近后释放
|
||||
// if ((joint.targetPosition - jointBaseTargetPos).sqrMagnitude < 0.000001f)
|
||||
// {
|
||||
// joint.targetPosition = jointBaseTargetPos;
|
||||
// jointHadTarget = false;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 外部触发漂相(鱼咬钩/流水/风/玩家提竿前的反馈等)
|
||||
// /// </summary>
|
||||
// public void PlayBite(BiteType type, Vector3? moveDirWorld = null)
|
||||
// {
|
||||
// currentBite = type;
|
||||
// biteT = 0f;
|
||||
//
|
||||
// biteAnim = type switch
|
||||
// {
|
||||
// BiteType.Black => black,
|
||||
// BiteType.Dip => dip,
|
||||
// BiteType.Move => move,
|
||||
// BiteType.Lift => lift,
|
||||
// _ => black
|
||||
// };
|
||||
//
|
||||
// biteDuration = Mathf.Max(0.02f, biteAnim.duration);
|
||||
// biteDirWorld = moveDirWorld ?? transform.forward;
|
||||
//
|
||||
// // 进入动画接管
|
||||
// state = FloatState.AnimBite;
|
||||
//
|
||||
// // 记录进入动画时 joint 的基准 target
|
||||
// if (joint)
|
||||
// {
|
||||
// jointBaseTargetPos = joint.targetPosition;
|
||||
// jointHadTarget = true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c9bb50ca0b0b5547937d3ce82577fad
|
||||
@@ -17,6 +17,7 @@
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AComponent_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb4c8c45fec274213bfac03ee0e9a3d621f5a00_003F7b_003F4d79464b_003FComponent_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AConfigurableJoint_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F21f01dcabaec42e5804351a26927d8a329c00_003Ff2_003F8a72505c_003FConfigurableJoint_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACursor_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F021f30a9a92b48ce98ae6b39956dd76a1df600_003Fd0_003F709b15ec_003FCursor_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADebug_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ff27f375161264267910e5cbe7a0862ec1f7600_003F56_003Fd1e22716_003FDebug_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADictionary_00602_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003Fe4_003F91da590a_003FDictionary_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEditorWindow_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1acad9deef3549c4b9617dfa169c66599f7e00_003F51_003F0bcae924_003FEditorWindow_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEditor_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1acad9deef3549c4b9617dfa169c66599f7e00_003Fc8_003F346a24ac_003FEditor_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
|
||||
@@ -12,22 +12,26 @@ Material:
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _CREST_FLOW_LOD
|
||||
- d_Crest_NoMaskDepth
|
||||
- d_Dithering
|
||||
m_InvalidKeywords:
|
||||
- CREST_CAUSTICS_ON
|
||||
- CREST_FOAM_ON
|
||||
- _ALPHATEST_ON
|
||||
- _BUILTIN_ALPHATEST_ON
|
||||
- _BUILTIN_AlphaClip
|
||||
- _BUILTIN_SURFACE_TYPE_TRANSPARENT
|
||||
- _BUILTIN_TRANSPARENT_RECEIVES_SHADOWS
|
||||
- _DOUBLESIDED_ON
|
||||
- _EMISSION
|
||||
- _ENABLE_FOG_ON_TRANSPARENT
|
||||
- _REFRACTION_PLANE
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
- _TRANSPARENT_WRITES_MOTION_VEC
|
||||
m_LightmapFlags: 2
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 1
|
||||
m_CustomRenderQueue: 3000
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
@@ -48,7 +52,7 @@ Material:
|
||||
- _Crest_Version: 0
|
||||
m_Floats:
|
||||
- CREST_FLOW: 0
|
||||
- _CREST_FLOW_LOD: 0
|
||||
- _CREST_FLOW_LOD: 1
|
||||
- _Crest_AmbientTerm: 1
|
||||
- _Crest_Anisotropy: 0.5
|
||||
- _Crest_CausticsDepthOfField: 6
|
||||
|
||||
@@ -9,32 +9,32 @@ EditorUserSettings:
|
||||
value: 18134705175a055722080a3115371d4a0d55006876786860616b0471b8b07a68ffab74f9ee2a3a30300cea1a11320d0beb1a0c25f7060f494b4cc80018eb09361fc211cb1f862d19c51d19dcc413d6ade0d8ddfcddf9f4d9d29195fcfde6ebeae6f0a9c9afa6f8c5b89ff7a1aacececac4eba4d7c9d28bda
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-0:
|
||||
value: 5403560050570a5a08085523137709114e15492e7c7f74677e2f4c61b0b3633e
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-1:
|
||||
value: 0700575604020d0a5c0a0a2643770d45134f487e74782031287d1f65b7b4623b
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-2:
|
||||
value: 535552075c510a595b5f557040770e484e164d792d7d75657d791e62b4e4366b
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-3:
|
||||
value: 550350030051080c080c0d21437759124716197b792977697a2b4936e6e26c3d
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-4:
|
||||
value: 0104025352005d0f0e0d0d2741775c12401519287c297167282a1935b1b13269
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-5:
|
||||
value: 5409035450035e0e0c5d5a7a13770a40454e4f722f7f24347e2d1f30b0b76360
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-6:
|
||||
value: 07060c5454040c0a545b547240700a441216417e7f2e7268752c4966b4b0663d
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-7:
|
||||
value: 5309035757065a0a54575f7216265c4444151d28792e72627d2f1935bbb8673a
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-8:
|
||||
RecentlyUsedSceneGuid-1:
|
||||
value: 5505015f5c515a085f5b092149760f441716407a787d7564287b1b36e7e1366e
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-2:
|
||||
value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-3:
|
||||
value: 005704520005080c5959542646205b4447154d2e7b7d7e34787f1e6ab0b56c3a
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-4:
|
||||
value: 53525155015459595c5d5e7315700744174e1a7f7a797e627f2b4b6abab3326f
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-5:
|
||||
value: 5a09065056055c0e595d0a20447b0b4415164e2b297c75682f7c1866b0b3656c
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-6:
|
||||
value: 0750065f5d57580c5c0b5d7741275e44464e1d297b7e77342e784a64b3e13539
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-7:
|
||||
value: 01085257040c5f0e0c0d5f27457b0f444e4e192c7b2d7e6428794d67e3b36668
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-8:
|
||||
value: 52530c5601535f020f565a2043770d1612154d2f747975692c7b4e66b5e3303b
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-9:
|
||||
value: 0054045155060d5a5c575f7045270d44474f4e7c7f7924637e2a1832b1b5636d
|
||||
flags: 0
|
||||
|
||||
Reference in New Issue
Block a user