This commit is contained in:
CortexCore 2024-03-11 02:16:25 +08:00
parent 605ccbcf8d
commit 6ef7c5f005
16 changed files with 832 additions and 45 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,5 +1,28 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5786229212923697688
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a1614fc811f8f184697d9bee70ab9fe5, type: 3}
m_Name: DecalRendererFeature
m_EditorClassIdentifier:
m_Active: 1
m_Settings:
technique: 0
maxDrawDistance: 1000
decalLayers: 0
dBufferSettings:
surfaceData: 2
screenSpaceSettings:
normalBlend: 0
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
@ -17,7 +40,8 @@ MonoBehaviour:
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
m_RendererFeatures:
- {fileID: 2352265475656500780}
m_RendererFeatureMap: 2cc6ebbdfceca420
- {fileID: -5786229212923697688}
m_RendererFeatureMap: 2cc6ebbdfceca420e8e5b106302fb3af
m_UseNativeRenderPass: 0
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}

View File

@ -0,0 +1,145 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-6293721709757624735
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Default Decal
m_Shader: {fileID: -6465566751694194690, guid: 9b4e681081e2b4c469111bb649e2f7ee, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- Base_Map:
m_Texture: {fileID: 2800000, guid: 2ded55bf792b59a4b9109c68549fe324, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- Normal_Map:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- Normal_Blend: 0.5
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DecalMeshBiasType: 0
- _DecalMeshDepthBias: 0
- _DecalMeshViewBias: 0
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DrawOrder: 0
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, 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: []

View File

@ -3051,6 +3051,38 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1356990118525796183, guid: 03c2ae0fa39597e4f92a5111e3228c63, type: 3}
m_PrefabInstance: {fileID: 158526291}
m_PrefabAsset: {fileID: 0}
--- !u!1 &160061836
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 160061837}
m_Layer: 0
m_Name: "\u5370\u82B1\u76EE\u5F55"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &160061837
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 160061836}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1268468428}
m_Father: {fileID: 1549445631}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &167171077
PrefabInstance:
m_ObjectHideFlags: 0
@ -8754,8 +8786,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 420814441}
serializedVersion: 2
m_LocalRotation: {x: -0.0000007765917, y: 0.96592575, z: -0.25881937, w: -0.0000028982759}
m_LocalPosition: {x: 0.000005197046, y: 1.5000007, z: 0.8660253}
m_LocalRotation: {x: 0.25881916, y: 0.0000028314114, z: -0.00000075867473, w: 0.9659258}
m_LocalPosition: {x: -0.0000050771478, y: 1.5000002, z: -0.8660253}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@ -13890,6 +13922,67 @@ Transform:
m_CorrespondingSourceObject: {fileID: 5976111924823002036, guid: 6984f1d52646a324a957fd1636eb12cb, type: 3}
m_PrefabInstance: {fileID: 693389720}
m_PrefabAsset: {fileID: 0}
--- !u!1 &698951663
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698951664}
- component: {fileID: 698951665}
m_Layer: 0
m_Name: fps-label
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &698951664
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698951663}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1237214210}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &698951665
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698951663}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b0261cd9eafc784c9d4cc6a24ea6886, type: 3}
m_Name:
m_EditorClassIdentifier:
document: {fileID: 1237214209}
bindName:
bindNameProvider:
rid: 3736623439084781572
format:
rid: 3736623439084781576
references:
version: 2
RefIds:
- rid: 3736623439084781572
type: {class: GetNameFromGameobject, ns: BITKit, asm: BITKit}
data:
gameobject: {fileID: 698951663}
- rid: 3736623439084781576
type: {class: Reference, ns: BITKit, asm: BITKit}
data:
value: FPS:{x}
--- !u!1001 &700000641
PrefabInstance:
m_ObjectHideFlags: 0
@ -17216,6 +17309,67 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1356990118525796183, guid: 03c2ae0fa39597e4f92a5111e3228c63, type: 3}
m_PrefabInstance: {fileID: 857579238}
m_PrefabAsset: {fileID: 0}
--- !u!1 &857627673
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 857627674}
- component: {fileID: 857627675}
m_Layer: 0
m_Name: ping-label
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &857627674
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857627673}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1237214210}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &857627675
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857627673}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b0261cd9eafc784c9d4cc6a24ea6886, type: 3}
m_Name:
m_EditorClassIdentifier:
document: {fileID: 1237214209}
bindName:
bindNameProvider:
rid: 3736623439084781573
format:
rid: 3736623439084781574
references:
version: 2
RefIds:
- rid: 3736623439084781573
type: {class: GetNameFromGameobject, ns: BITKit, asm: BITKit}
data:
gameobject: {fileID: 857627673}
- rid: 3736623439084781574
type: {class: Reference, ns: BITKit, asm: BITKit}
data:
value: Ping:{x}ms
--- !u!1001 &861051413
PrefabInstance:
m_ObjectHideFlags: 0
@ -18500,31 +18654,31 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalPosition.x
value: 0.000005197046
value: -0.0000050771478
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalPosition.y
value: 0.5000007
value: 0.50000024
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalPosition.z
value: 0.8660253
value: -0.8660253
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.w
value: -0.0000028982759
value: 0.9659258
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.x
value: -0.0000007765917
value: 0.25881916
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.y
value: 0.96592575
value: 0.0000028314114
objectReference: {fileID: 0}
- target: {fileID: 4263150313831602953, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.z
value: -0.25881937
value: -0.00000075867473
objectReference: {fileID: 0}
- target: {fileID: 4263150314946998997, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: allowInput
@ -18552,19 +18706,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4263150314984849210, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.w
value: 0.0000028908253
value: -0.9659259
objectReference: {fileID: 0}
- target: {fileID: 4263150314984849210, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.x
value: 0.00000074878335
value: -0.25881913
objectReference: {fileID: 0}
- target: {fileID: 4263150314984849210, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.y
value: -0.9659258
value: -0.00000282377
objectReference: {fileID: 0}
- target: {fileID: 4263150314984849210, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalRotation.z
value: 0.25881943
value: 0.0000007301569
objectReference: {fileID: 0}
- target: {fileID: 4263150314984849210, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@ -18572,7 +18726,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4263150314984849210, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -180
value: -360
objectReference: {fileID: 0}
- target: {fileID: 5175145412320996503, guid: 38a853bdbe097a24ebb4613f9bc99fe6, type: 3}
propertyPath: m_LocalPosition.x
@ -24469,6 +24623,7 @@ GameObject:
- component: {fileID: 1237214215}
- component: {fileID: 1237214216}
- component: {fileID: 1237214217}
- component: {fileID: 1237214218}
m_Layer: 0
m_Name: CuttingPanel
m_TagString: Untagged
@ -24532,6 +24687,9 @@ Transform:
- {fileID: 455873927}
- {fileID: 367749727}
- {fileID: 128062587}
- {fileID: 857627674}
- {fileID: 698951664}
- {fileID: 1460596583}
m_Father: {fileID: 475671028}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1237214211
@ -24585,6 +24743,10 @@ MonoBehaviour:
m_EditorClassIdentifier:
brushIconDictionary:
_serializedList:
- Key: DecalBrush
Value: {fileID: 2800000, guid: fa59a69c4ab737f4f87c1975f9726f82, type: 3}
- Key: CuttingFillBrush
Value: {fileID: 2800000, guid: f9411642918e0714b9bf44e2b0bb5475, type: 3}
- Key: CuttingScriptablePointBrush
Value: {fileID: 2800000, guid: 3fbb3fd56ccc5144e863171f64c7dd79, type: 3}
- Key: CuttingLineBrush
@ -24676,6 +24838,53 @@ MonoBehaviour:
m_EditorClassIdentifier:
defaultTexture: {fileID: 0}
worldImage: {fileID: 1354611256}
--- !u!114 &1237214218
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1237214207}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 041838da66546b241a2c3b928442dbe7, type: 3}
m_Name:
m_EditorClassIdentifier:
pingAddress:
rid: 3736623439084781581
fpsInterval:
Interval: 1
fpsOutput:
rid: 3736623439084781579
pingOutput:
rid: 3736623439084781578
resolutionOutput:
rid: -2
frameRateOutput:
rid: 3736623439084781580
clientPing:
rid: -2
references:
version: 2
RefIds:
- rid: -2
type: {class: , ns: , asm: }
- rid: 3736623439084781578
type: {class: IProviderMonoProxy, ns: BITKit, asm: BITKit}
data:
monoBehaviour: {fileID: 857627675}
- rid: 3736623439084781579
type: {class: IProviderMonoProxy, ns: BITKit, asm: BITKit}
data:
monoBehaviour: {fileID: 698951665}
- rid: 3736623439084781580
type: {class: IProviderMonoProxy, ns: BITKit, asm: BITKit}
data:
monoBehaviour: {fileID: 1460596584}
- rid: 3736623439084781581
type: {class: Reference, ns: BITKit, asm: BITKit}
data:
value: "134.175.197.97\r"
--- !u!1 &1238623440
GameObject:
m_ObjectHideFlags: 0
@ -25220,6 +25429,62 @@ Transform:
m_CorrespondingSourceObject: {fileID: 775197342873461764, guid: db2d086fe2ffee04dbb1f233c83f567a, type: 3}
m_PrefabInstance: {fileID: 1268163722}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1268468426
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1268468428}
- component: {fileID: 1268468427}
m_Layer: 0
m_Name: URP Decal
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1268468427
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1268468426}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0777d029ed3dffa4692f417d4aba19ca, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 7a6b6333b88df224eaee52d3354b8015, type: 2}
m_DrawDistance: 1000
m_FadeScale: 0.9
m_StartAngleFade: 180
m_EndAngleFade: 180
m_UVScale: {x: 1, y: 1}
m_UVBias: {x: 0, y: 0}
m_DecalLayerMask: 1
m_ScaleMode: 0
m_Offset: {x: 0, y: 0, z: -0.2}
m_Size: {x: 0.2, y: 0.2, z: 1}
m_FadeFactor: 1
--- !u!4 &1268468428
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1268468426}
serializedVersion: 2
m_LocalRotation: {x: -0.70710754, y: -0, z: -0, w: 0.7071061}
m_LocalPosition: {x: 0.008, y: 0.191, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 160061837}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
--- !u!1001 &1272703556
PrefabInstance:
m_ObjectHideFlags: 0
@ -28497,6 +28762,67 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1460596582
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1460596583}
- component: {fileID: 1460596584}
m_Layer: 0
m_Name: rate-label
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1460596583
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1460596582}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1237214210}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1460596584
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1460596582}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b0261cd9eafc784c9d4cc6a24ea6886, type: 3}
m_Name:
m_EditorClassIdentifier:
document: {fileID: 1237214209}
bindName:
bindNameProvider:
rid: 3736623439084781571
format:
rid: 3736623439084781577
references:
version: 2
RefIds:
- rid: 3736623439084781571
type: {class: GetNameFromGameobject, ns: BITKit, asm: BITKit}
data:
gameobject: {fileID: 1460596582}
- rid: 3736623439084781577
type: {class: Reference, ns: BITKit, asm: BITKit}
data:
value: "\u5E27\u7387\u9650\u5236:{x}"
--- !u!1001 &1461716792
PrefabInstance:
m_ObjectHideFlags: 0
@ -30012,6 +30338,7 @@ GameObject:
- component: {fileID: 1549445628}
- component: {fileID: 1549445633}
- component: {fileID: 1549445632}
- component: {fileID: 1549445634}
m_Layer: 0
m_Name: "\u5207\u524A\u673A"
m_TagString: Untagged
@ -30058,6 +30385,8 @@ MonoBehaviour:
- rid: 1308798517044838400
- rid: 1308798517044838403
- rid: 1308798517044838404
- rid: 3736623439084781568
- rid: 3736623439084781569
_currentStateName:
debug: 0
transitionOnNextFrame: 0
@ -30089,6 +30418,13 @@ MonoBehaviour:
- rid: 1308798517044838404
type: {class: CuttingScriptablePointBrush, ns: BITFactory.Cutting, asm: iFactory.Cutting.Runtime}
data:
- rid: 3736623439084781568
type: {class: CuttingFillBrush, ns: BITFactory.Cutting, asm: iFactory.Cutting.Runtime}
data:
transform: {fileID: 904426893}
- rid: 3736623439084781569
type: {class: DecalBrush, ns: BITFactory.Cutting, asm: iFactory.Cutting.Runtime}
data:
--- !u!114 &1549445630
MonoBehaviour:
m_ObjectHideFlags: 0
@ -30115,6 +30451,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 904426893}
- {fileID: 160061837}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1549445632
@ -30166,6 +30503,19 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f0c6c2d406bfdaf46ba4ab9883f71066, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1549445634
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1549445627}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e0d664c18eb5ee9498650bf7933378d7, type: 3}
m_Name:
m_EditorClassIdentifier:
decalProjector: {fileID: 1268468427}
--- !u!1001 &1550331181
PrefabInstance:
m_ObjectHideFlags: 0

View File

@ -175,10 +175,29 @@ namespace BITFactory.Cutting
var button = _brushFieldsContainer.Create<Button>();
button.text =string.IsNullOrEmpty(exportAttribute.Name) ? methodInfo.Name:exportAttribute.Name;
button.clicked += () =>
button.clicked += OnClicked;
return;
void OnClicked()
{
methodInfo.Invoke(arg2, null);
};
try
{
methodInfo.Invoke(arg2, null);
}
catch (TargetInvocationException targetInvocationException)
{
if (targetInvocationException.InnerException is InGameException e is false) return;
switch (e)
{
case {InnerException:not null}:
Alert.Print(e.Message,e.InnerException.Message);
break;
default:
Alert.Print(e.Message,e.Source);
break;
}
}
}
}
}
}

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Runtime.CompilerServices;
using BITKit;
using BITKit.StateMachine;
using PaintIn3D;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Mathematics;
using UnityEngine;
@ -174,5 +175,69 @@ namespace BITFactory.Cutting
}
}
}
/// <summary>
/// 填充笔刷,用于填充应该被裁剪的区域,类似油漆桶
/// </summary>
[Serializable]
public sealed class CuttingFillBrush : CuttingToolBrush
{
[SerializeField] private Transform transform;
public override string Name => "填充切削";
public override string Description => "仅在该程序中使用,用于预览被裁剪的区域";
[Export(name:"自动填充")]
private void AutoFill()
{
var p3dTexture = transform.GetComponentInChildren<P3dPaintableTexture>();
var texture = p3dTexture.Current.ToTexture2D();
var colors = texture.GetPixels();
var size = new float2(texture.width, texture.height);
//洪水填充
throw new InGameException("暂未实现,算法有些复杂");
}
}
/// <summary>
/// 印花笔刷,用于在表面上印花
/// </summary>
[Serializable]
public sealed class DecalBrush : CuttingToolBrush
{
public override string Name => "印花笔刷";
public override string Description => "在表面上印花,例如预览打印文字或者Logo,图案等";
[Inject]
private IDecalTool _decalTool;
private ITransform _previewTransform;
public override void OnStateEntry(IState old)
{
base.OnStateEntry(old);
_previewTransform = _decalTool.Create(string.Empty);
}
public override void OnStateExit(IState old, IState newState)
{
base.OnStateExit(old, newState);
_previewTransform.Dispose();
}
public override void HandlePoint(bool isPreview, float3 normal, float3 point)
{
if (isPreview is false) return;
_previewTransform.Position = point+(float3)Vector3.up*0.1f;
_previewTransform.Rotation = Quaternion.LookRotation(normal);
}
[Export(name:"选择图片")]
private void SelectImage()
{
throw new InGameException("暂未实现",new NotImplementedException("需要一些小小的base64转换才能储存,暂未实现"));
}
}
}

View File

@ -0,0 +1,29 @@
using System;
using System.Collections;
using System.Collections.Generic;
using BITKit;
using BITKit.Entities;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Rendering.Universal;
namespace BITFactory.Cutting
{
[CustomType(typeof(IDecalTool))]
public class UnityDecalTool : EntityBehavior,IDecalTool
{
[SerializeField] private DecalProjector decalProjector;
private void Start()
{
decalProjector.gameObject.SetActive(false);
}
public ITransform Create(string base64, float3 position = default, quaternion rotation = default, float3 scale = default)
{
var decal = Instantiate(decalProjector, position, rotation);
decal.gameObject.SetActive(true);
return decal.transform.ToUnityTransform();
}
}
}

View File

@ -12,7 +12,8 @@
"GUID:517785bb4600a5140b47eac5fa49b8fc",
"GUID:d525ad6bd40672747bde77962f1c401e",
"GUID:49b49c76ee64f6b41bf28ef951cb0e50",
"GUID:f51ebe6a0ceec4240a699833d6309b23"
"GUID:f51ebe6a0ceec4240a699833d6309b23",
"GUID:15fc0a57446b3144c949da3e2b9737a9"
],
"includePlatforms": [],
"excludePlatforms": [],

View File

@ -10,11 +10,21 @@
<ui:VisualElement picking-mode="Ignore" style="background-image: url(&quot;project://database/Assets/BITKit/Unity/Art/Backgrounds/BG_Gradient_Half.png?fileID=2800000&amp;guid=901684d8a74b397439bb9c11b92d0cc7&amp;type=3#BG_Gradient_Half&quot;); -unity-background-image-tint-color: rgb(0, 0, 0); position: absolute; left: 0; top: 0; bottom: 0; right: 82%;" />
<ui:VisualElement picking-mode="Ignore" style="background-image: url(&quot;project://database/Assets/BITKit/Unity/Art/Backgrounds/BG_Gradient_Half.png?fileID=2800000&amp;guid=901684d8a74b397439bb9c11b92d0cc7&amp;type=3#BG_Gradient_Half&quot;); -unity-background-image-tint-color: rgb(0, 0, 0); position: absolute; left: 82%; top: 0; bottom: 0; right: 0; rotate: 180deg;" />
</ui:VisualElement>
<ui:VisualElement name="LB" picking-mode="Ignore" class="root" style="top: 0; left: 64px; bottom: 64px; align-items: flex-start; justify-content: flex-end;">
<ui:VisualElement name="LB" picking-mode="Ignore" class="root" style="top: 0; left: 64px; bottom: 32px; align-items: flex-start; justify-content: flex-end;">
<ui:VisualElement>
<ui:Label tabindex="-1" text="FPS:90" parse-escape-sequences="true" display-tooltip-when-elided="true" name="fps-label" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;" />
<ui:Label tabindex="-1" text="Ping:32ms" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ping-label" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;" />
<ui:Label tabindex="-1" text="Freq:90HZ" parse-escape-sequences="true" display-tooltip-when-elided="true" name="rate-label" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;" />
</ui:VisualElement>
<ui:VisualElement picking-mode="Ignore" style="flex-direction: row; border-bottom-width: 1px; border-left-color: rgba(255, 255, 255, 0.5); border-right-color: rgba(255, 255, 255, 0.5); border-top-color: rgba(255, 255, 255, 0.5); border-bottom-color: rgba(255, 255, 255, 0.5);">
<ui:Label tabindex="-1" text="[按住 鼠标中键]&#10;[鼠标左键]&#10;[Shift+WASD]" parse-escape-sequences="true" display-tooltip-when-elided="true" picking-mode="Ignore" />
<ui:Label tabindex="-1" text="旋转视角&#10;使用笔刷操作&#10;移动视角" parse-escape-sequences="true" display-tooltip-when-elided="true" picking-mode="Ignore" />
</ui:VisualElement>
<ui:VisualElement style="height: 8px;" />
<ui:VisualElement style="flex-direction: row; align-items: flex-end;">
<ui:VisualElement name="logo" style="background-image: url(&quot;project://database/Assets/Artists/Arts/Logos/logo_CN_Intelli.png?fileID=2800000&amp;guid=6b3587d9aacd79143a01fc8c627e2cd9&amp;type=3#logo_CN_Intelli&quot;); width: 100px; height: 60px;" />
<ui:Label tabindex="-1" text="提示您:" parse-escape-sequences="true" display-tooltip-when-elided="true" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; -unity-font-style: bold; color: rgba(247, 247, 247, 0.69);" />
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement picking-mode="Ignore" name="L" class="root theme-dark photo-mode">
<ui:VisualElement picking-mode="Ignore" style="margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 64px; min-width: 64px; flex-direction: row; align-items: center;">
@ -73,8 +83,8 @@
<ui:Label tabindex="-1" text="未保存或加载" parse-escape-sequences="true" display-tooltip-when-elided="true" name="save-path-label" />
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement picking-mode="Ignore" name="R" class="root theme-dark photo-mode">
<ui:VisualElement picking-mode="Ignore" style="margin-top: auto; margin-right: 64px; margin-bottom: auto; margin-left: auto; flex-direction: row; align-items: stretch; width: auto; height: 512px; min-width: 256px;">
<ui:VisualElement picking-mode="Ignore" name="RT" class="root theme-dark photo-mode">
<ui:VisualElement picking-mode="Ignore" style="flex-direction: row; align-items: stretch; width: auto; min-width: 256px; margin-top: 32px; margin-left: auto; margin-right: 64px; margin-bottom: 64px;">
<ui:VisualElement>
<ui:Label tabindex="-1" text="辅助功能" parse-escape-sequences="true" display-tooltip-when-elided="true" class="tl" />
<ui:Label tabindex="-1" text="参考图形" parse-escape-sequences="true" display-tooltip-when-elided="true" class="tm" />

View File

@ -184,6 +184,9 @@ namespace BITKit.Mod
OnLocked?.Invoke(value);
}
}
public static event Action<ModPackage> OnPackageLoad;
public static event Action<ModPackage> OnPackageLoaded;
public static event Action<IMod> OnModLoad;
public static event Action<IMod> OnModLoaded;
@ -409,6 +412,14 @@ namespace BITKit.Mod
if(package.EntryPoint is null) throw new InvalidOperationException("空入口,无法识别类型");
path = Path.Combine(Path.GetDirectoryName(path)!, package.EntryPoint);
if(File.Exists(path) is false) throw new InvalidOperationException($"未找到入口文件:{path}");
OnPackageLoad?.Invoke(package);
foreach (var name in package.Dlls)
{
}
var fileInfo = new FileInfo(path);
switch (fileInfo.Extension)
{
@ -429,6 +440,7 @@ namespace BITKit.Mod
#endif
}
OnPackageLoaded?.Invoke(package);
}
public static void Load(IMod mod)
{

View File

@ -1,3 +1,6 @@
using System;
using Unity.Mathematics;
namespace BITKit
{
public enum TransformMode : int
@ -7,4 +10,13 @@ namespace BITKit
Rotate,
Scale,
}
public interface ITransform:IDisposable
{
float3 LocalPosition { get; set; }
float3 Position { get; set; }
quaternion LocalRotation { get; set; }
quaternion Rotation { get; set; }
float3 LocalScale { get; set; }
float4x4 Matrix { get; set; }
}
}

View File

@ -25,31 +25,18 @@ namespace BITKit.Mod
BIT4Log.Log<UnityModService>($"{nameof(System.Linq)}位于{typeof(Enumerable).Assembly.Location}");
}
foreach (var x in referencedAssemblies)
{
var dllName = x.Value.Contains(".dll") ? x.Value : $"{x.Value}.dll";
#if UNITY_EDITOR
var dll = System.IO.Path.Combine(Environment.CurrentDirectory, "Library", "ScriptAssemblies",dllName);
var folder = EditorApplication.applicationPath;
folder = Path.GetDirectoryName(folder);
if(File.Exists(dll) is false)
{
dll = Path.Combine(folder,"Data", "MonoBleedingEdge", "lib","mono","unityjit-win32",dllName);
}
if (File.Exists(dll) is false)
{
dll = Path.Combine(folder,"Data", "MonoBleedingEdge", "lib","mono","unityjit-win32","Facades",dllName);
}
#else
var dll = System.IO.Path.Combine(Environment.CurrentDirectory,$"{Application.productName}_Data", "Managed", dllName);
#endif
if (System.IO.File.Exists(dll) is false)
if (SearchDll(dllName,out var dll) is false)
{
BIT4Log.Warning<UnityModService>($"未找到:{dll}");
continue;
}
BITSharp.ReferencedAssemblies.Add(@$"""{dll}""");
}
@ -67,6 +54,9 @@ namespace BITKit.Mod
destroyCancellationToken.Register(ModService.Dispose);
if (!loadLocalPackageOnStart) return;
ModService.OnPackageLoad+=OnPackageLoad;
var packages = await ModService.SearchPackages();
if (destroyCancellationToken.IsCancellationRequested) return;
@ -75,6 +65,51 @@ namespace BITKit.Mod
await ModService.LoadFromPackage(package.PackagePath);
if (destroyCancellationToken.IsCancellationRequested) return;
}
destroyCancellationToken.Register(() =>
{
ModService.OnPackageLoad-=OnPackageLoad;
});
}
private void OnPackageLoad(ModPackage obj)
{
var loadedDlls = referencedAssemblies.Cast();
var reportBuilder = new System.Text.StringBuilder();
//对比已加载的dll和当前引用的dll
foreach (var x in obj.Dlls.Except(loadedDlls))
{
if (SearchDll(x, out var dll) is false)
{
BIT4Log.Warning<UnityModService>($"未找到:{dll}");
continue;
}
BITSharp.ReferencedAssemblies.Add(@$"""{dll}""");
reportBuilder.AppendLine($"加载:{dll}");
}
BIT4Log.Log<UnityModService>(reportBuilder.ToString());
}
private bool SearchDll(string dllName,out string dll,params string[] moreFolder)
{
#if UNITY_EDITOR
dll = System.IO.Path.Combine(Environment.CurrentDirectory, "Library", "ScriptAssemblies", dllName);
var folder = EditorApplication.applicationPath;
folder = Path.GetDirectoryName(folder);
if(File.Exists(dll) is false)
{
dll = Path.Combine(folder,"Data", "MonoBleedingEdge", "lib","mono","unityjit-win32",dllName);
}
if (File.Exists(dll) is false)
{
dll = Path.Combine(folder,"Data", "MonoBleedingEdge", "lib","mono","unityjit-win32","Facades",dllName);
}
#else
var dll = System.IO.Path.Combine(Environment.CurrentDirectory,$"{Application.productName}_Data", "Managed", dllName);
#endif
return File.Exists(dll);
}
}
}

View File

@ -0,0 +1,58 @@
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.UI;
namespace BITKit
{
public static class TransformExtensions
{
public static UnityTransform ToUnityTransform(this Transform transform)
{
return new UnityTransform(transform);
}
}
public readonly struct UnityTransform:ITransform
{
private readonly Transform _transform;
public UnityTransform(Transform transform)
{
_transform = transform;
}
public void Dispose()
{
if (_transform)
Object.Destroy(_transform.gameObject);
}
public float3 LocalPosition
{
get => _transform.localPosition;
set => _transform.localPosition = value;
}
public float3 Position
{
get => _transform.position;
set => _transform.position = value;
}
public quaternion LocalRotation
{
get => _transform.localRotation;
set => _transform.localRotation = value;
}
public quaternion Rotation
{
get => _transform.rotation;
set => _transform.rotation = value;
}
public float3 LocalScale
{
get => _transform.localScale;
set => _transform.localScale = value;
}
public float4x4 Matrix
{
get =>new float4x4(_transform);
set => _transform.SetPositionAndRotation(value.c3.xyz,quaternion.LookRotation(value.c2.xyz,value.c1.xyz));
}
}
}

View File

@ -3,24 +3,30 @@
--- !u!84 &8400000
RenderTexture:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DynamicDecal
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 512
m_Height: 512
m_AntiAliasing: 1
m_DepthFormat: 2
m_ColorFormat: 0
m_MipCount: -1
m_DepthStencilFormat: 92
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_EnableRandomWrite: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
@ -31,3 +37,4 @@ RenderTexture:
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2

View File

@ -0,0 +1,13 @@
using System.Diagnostics;
using System.Net.Configuration;
using BITKit;
using Unity.Mathematics;
namespace BITFactory.Cutting
{
public interface IDecalTool
{
ITransform Create(string base64,float3 position=default, quaternion rotation=default, float3 scale= default);
}
}

View File

@ -103,6 +103,13 @@
**操作系统:** 仅限于64位`Windows 10`,`Windows 11`或以上
## 更新日志
### 2024年3月11日
- 添加了`印花`必刷,可以预览贴纸或者打印的效果,例如`logo`,`文字`或者`图案`
- 调整命令与功能面板从`右侧中心`移动到`右侧顶部`
- 在左下角添加了遥测信息,包括`FPS`,`Ping`和`帧率限制`
- 添加了左下角的`logo`
- 添加了自动加载Dll,现在可以dll会自动从`package.json`所在的目录自动搜索
- 添加了`自动填充`的按钮,将会在准备好时可用(占位符)
### 2024年3月5日
- 更改动态编译器从`MCS`更改为`Roslyn`
- 添加了在左下角的`按键提示`