feat: 场景快照和隐藏角色

This commit is contained in:
m0_75251201
2025-11-01 15:18:34 +08:00
commit 997656613e
116 changed files with 2140 additions and 0 deletions

13
.idea/.idea.ThirdPersonCamera/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,13 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# Rider 忽略的文件
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.ThirdPersonCamera.iml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,105 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\vs_project\\ThirdPersonCamera\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|d:\\vs_project\\thirdpersoncamera\\scenesnapshot\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|solutionrelative:scenesnapshot\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|d:\\vs_project\\thirdpersoncamera\\scenesnapshot\\printtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|solutionrelative:scenesnapshot\\printtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|d:\\vs_project\\thirdpersoncamera\\scenesnapshot\\scenesnapshot.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|solutionrelative:scenesnapshot\\scenesnapshot.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|d:\\vs_project\\thirdpersoncamera\\thirdpersoncamera\\thirdpersoncamera.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|solutionrelative:thirdpersoncamera\\thirdpersoncamera.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|d:\\vs_project\\thirdpersoncamera\\thirdpersoncamera\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|solutionrelative:thirdpersoncamera\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "PrintTool.cs",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\PrintTool.cs",
"RelativeDocumentMoniker": "SceneSnapshot\\PrintTool.cs",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\PrintTool.cs",
"RelativeToolTip": "SceneSnapshot\\PrintTool.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-31T07:05:03.875Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "ThirdPersonCamera",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ThirdPersonCamera.csproj",
"RelativeDocumentMoniker": "ThirdPersonCamera\\ThirdPersonCamera.csproj",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ThirdPersonCamera.csproj",
"RelativeToolTip": "ThirdPersonCamera\\ThirdPersonCamera.csproj",
"ViewState": "AgIAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-10-31T06:59:58.014Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "SceneSnapshot",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\SceneSnapshot.csproj",
"RelativeDocumentMoniker": "SceneSnapshot\\SceneSnapshot.csproj",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\SceneSnapshot.csproj",
"RelativeToolTip": "SceneSnapshot\\SceneSnapshot.csproj",
"ViewState": "AgIAABgAAAAAAAAAAAAAAC0AAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-10-31T06:59:24.377Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "ModBehaviour.cs",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\ModBehaviour.cs",
"RelativeDocumentMoniker": "SceneSnapshot\\ModBehaviour.cs",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\ModBehaviour.cs",
"RelativeToolTip": "SceneSnapshot\\ModBehaviour.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-31T06:57:37.916Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "ModBehaviour.cs",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ModBehaviour.cs",
"RelativeDocumentMoniker": "ThirdPersonCamera\\ModBehaviour.cs",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ModBehaviour.cs",
"RelativeToolTip": "ThirdPersonCamera\\ModBehaviour.cs",
"ViewState": "AgIAAAoAAAAAAAAAAAAiwCMAAAA2AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-30T06:51:32.927Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@@ -0,0 +1,105 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\vs_project\\ThirdPersonCamera\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|d:\\vs_project\\thirdpersoncamera\\scenesnapshot\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|solutionrelative:scenesnapshot\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|d:\\vs_project\\thirdpersoncamera\\scenesnapshot\\printtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|solutionrelative:scenesnapshot\\printtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|d:\\vs_project\\thirdpersoncamera\\scenesnapshot\\scenesnapshot.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{623270B2-9677-44F2-9137-8EF50527E8D5}|SceneSnapshot\\SceneSnapshot.csproj|solutionrelative:scenesnapshot\\scenesnapshot.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|d:\\vs_project\\thirdpersoncamera\\thirdpersoncamera\\thirdpersoncamera.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|solutionrelative:thirdpersoncamera\\thirdpersoncamera.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|d:\\vs_project\\thirdpersoncamera\\thirdpersoncamera\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}|ThirdPersonCamera\\ThirdPersonCamera.csproj|solutionrelative:thirdpersoncamera\\modbehaviour.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "PrintTool.cs",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\PrintTool.cs",
"RelativeDocumentMoniker": "SceneSnapshot\\PrintTool.cs",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\PrintTool.cs",
"RelativeToolTip": "SceneSnapshot\\PrintTool.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-31T07:05:03.875Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "ThirdPersonCamera",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ThirdPersonCamera.csproj",
"RelativeDocumentMoniker": "ThirdPersonCamera\\ThirdPersonCamera.csproj",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ThirdPersonCamera.csproj",
"RelativeToolTip": "ThirdPersonCamera\\ThirdPersonCamera.csproj",
"ViewState": "AgIAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-10-31T06:59:58.014Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "SceneSnapshot",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\SceneSnapshot.csproj",
"RelativeDocumentMoniker": "SceneSnapshot\\SceneSnapshot.csproj",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\SceneSnapshot.csproj",
"RelativeToolTip": "SceneSnapshot\\SceneSnapshot.csproj",
"ViewState": "AgIAABgAAAAAAAAAAAAAAC0AAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-10-31T06:59:24.377Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "ModBehaviour.cs",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\ModBehaviour.cs",
"RelativeDocumentMoniker": "SceneSnapshot\\ModBehaviour.cs",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\SceneSnapshot\\ModBehaviour.cs",
"RelativeToolTip": "SceneSnapshot\\ModBehaviour.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-31T06:57:37.916Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "ModBehaviour.cs",
"DocumentMoniker": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ModBehaviour.cs",
"RelativeDocumentMoniker": "ThirdPersonCamera\\ModBehaviour.cs",
"ToolTip": "D:\\vs_project\\ThirdPersonCamera\\ThirdPersonCamera\\ModBehaviour.cs",
"RelativeToolTip": "ThirdPersonCamera\\ModBehaviour.cs",
"ViewState": "AgIAAAoAAAAAAAAAAAAiwCMAAAA2AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-30T06:51:32.927Z",
"EditorCaption": ""
}
]
}
]
}
]
}

37
DuckovMods.sln Normal file
View File

@@ -0,0 +1,37 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36603.0 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThirdPersonCamera", "ThirdPersonCamera\ThirdPersonCamera.csproj", "{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SceneSnapshot", "SceneSnapshot\SceneSnapshot.csproj", "{623270B2-9677-44F2-9137-8EF50527E8D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HideCharacter", "HideCharacter\HideCharacter.csproj", "{809F6CA1-E757-46CD-B8AB-89522D166140}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B35A0F60-1B8F-4CC5-9F92-3B177DFB4078}.Release|Any CPU.Build.0 = Release|Any CPU
{623270B2-9677-44F2-9137-8EF50527E8D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{623270B2-9677-44F2-9137-8EF50527E8D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{623270B2-9677-44F2-9137-8EF50527E8D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{623270B2-9677-44F2-9137-8EF50527E8D5}.Release|Any CPU.Build.0 = Release|Any CPU
{809F6CA1-E757-46CD-B8AB-89522D166140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{809F6CA1-E757-46CD-B8AB-89522D166140}.Debug|Any CPU.Build.0 = Debug|Any CPU
{809F6CA1-E757-46CD-B8AB-89522D166140}.Release|Any CPU.ActiveCfg = Release|Any CPU
{809F6CA1-E757-46CD-B8AB-89522D166140}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3721A03C-605B-4C94-A4FF-89F485A26E86}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,24 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAimTargetFinder_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003Fa9_003F4ac92f25_003FAimTargetFinder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABehaviour_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc39a522eee05469b8171a6cfeb646c591543b0_003Fc1_003Faa1a31b2_003FBehaviour_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACameraArmControl_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003Ff5_003F4622470d_003FCameraArmControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACameraArm_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003Fdc_003Fc73e8a9f_003FCameraArm_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACameraArm_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fae7b55f2e79e4a30b19151f53aa9af29197600_003Ff6_003F5678008c_003FCameraArm_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACharacterCreator_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003F06_003Ff3fe5490_003FCharacterCreator_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACharacterMainControl_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003F2c_003Fe5626d7e_003FCharacterMainControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACustomFaceInstance_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fae7b55f2e79e4a30b19151f53aa9af29197600_003Ff5_003F7e299618_003FCustomFaceInstance_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADuckovScreenCapturer_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003F59_003F92754824_003FDuckovScreenCapturer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGameCamera_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003Fd2_003F4160411a_003FGameCamera_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGameplayDataSettings_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003Fa4_003Ffea6779d_003FGameplayDataSettings_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AInventoryData_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F71a3d79537274de2b084d0fd207549d617200_003F5e_003F6152b6b7_003FInventoryData_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ALevelConfig_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003Fcc_003Fcfd90334_003FLevelConfig_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AModBehaviour_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fae7b55f2e79e4a30b19151f53aa9af29197600_003Ff3_003Ff5f2b19a_003FModBehaviour_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMonoBehaviour_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc39a522eee05469b8171a6cfeb646c591543b0_003F02_003F65608a5e_003FMonoBehaviour_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AOcclusionFadeChecker_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003F05_003F7aa60d94_003FOcclusionFadeChecker_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AOcclusionFadeChecker_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fae7b55f2e79e4a30b19151f53aa9af29197600_003Fa8_003Fd12e1cf7_003FOcclusionFadeChecker_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AOcclusionFadeManager_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F492b6cef9eac4cd497c1ffcbfcb9161f197200_003F70_003F6aba3c97_003FOcclusionFadeManager_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVolumeComponent_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb02e352b027d497b8571da05e536c2f682000_003F36_003F74cee2c4_003FVolumeComponent_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVolume_002Ecs_002Fl_003AC_0021_003FUsers_003FLenovo_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb02e352b027d497b8571da05e536c2f682000_003Ffa_003F02e0206c_003FVolume_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue">&lt;AssemblyExplorer&gt;&#xD;
&lt;Assembly Path="D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Managed\ItemStatsSystem.dll" /&gt;&#xD;
&lt;/AssemblyExplorer&gt;</s:String></wpf:ResourceDictionary>

View File

@@ -0,0 +1,43 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Authors>折纸的小箱子</Authors>
<AssemblyVersion>1.0.0</AssemblyVersion>
<DuckovPath>D:\steam\steamapps\common\Escape from Duckov</DuckovPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter</OutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\TeamSoda.*">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="Cinemachine">
<HintPath>$(DuckovPath)\Duckov_Data\Managed\Cinemachine.dll</HintPath>
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="FMODUnity">
<HintPath>$(DuckovPath)\Duckov_Data\Managed\FMODUnity.dll</HintPath>
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\Unity*">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Lib.Harmony" Version="2.4.1"/>
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,187 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using Newtonsoft.Json;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace HideCharacter
{
public class HideCharacterComponent : MonoBehaviour
{
public HideList? hideList = new HideList();
private bool hide = false;
private List<Renderer> rendererList = new List<Renderer>();
private bool needRefresh = true;
private GameObject?
bodyPartObject,
tail,
eye,
eyebrow,
mouth,
hair,
armLeft,
armRight,
thighLeft,
thighRight,
weapon,
healthBar;
private void OnEnable()
{
SceneManager.sceneLoaded += OnSceneLoaded;
var dllDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var configFilePath = Path.Combine(dllDirectory, "config.json");
if (File.Exists(configFilePath))
{
try
{
var jsonString = File.ReadAllText(configFilePath);
hideList = JsonConvert.DeserializeObject<HideList>(jsonString);
}
catch (JsonSerializationException ex) // 捕获 Newtonsoft.Json 特有的异常
{
Debug.LogError($"JSON 反序列化错误 (Newtonsoft.Json): {ex.Message}");
}
catch (IOException ex)
{
Debug.LogError($"文件读取错误: {ex.Message}");
}
catch (Exception ex)
{
Debug.LogError($"加载配置文件时发生未知错误: {ex.Message}");
}
}
else
{
Debug.LogWarning($"配置文件 '{configFilePath}' 不存在。将使用默认设置。");
try
{
var jsonString = JsonConvert.SerializeObject(hideList, Formatting.Indented);
File.WriteAllText(configFilePath, jsonString);
}
catch (IOException ex)
{
Debug.LogError($"创建配置文件时发生错误: {ex.Message}");
}
catch (Exception ex)
{
Debug.LogError($"创建配置文件时发生未知错误: {ex.Message}");
}
}
}
private void OnDisable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
rendererList.Clear();
var obj = GameObject.Find("ModelRoot");
if (!obj) return;
bodyPartObject = GameObject.Find("Pelvis");
healthBar=GameObject.Find("HealthBars");
needRefresh = true;
//防止无法正常恢复身体
foreach (var skinnedMeshRenderer in obj.GetComponentsInChildren<SkinnedMeshRenderer>())
{
rendererList.Add(skinnedMeshRenderer);
}
}
void FindChildObjectsRecursively(Transform parentTransform)
{
foreach (Transform child in parentTransform)
{
switch (child.gameObject.name)
{
case "TailSocket":
tail = child.gameObject;
break;
case "Thigh.L":
thighLeft = child.gameObject;
break;
case "Thigh.R":
thighRight = child.gameObject;
break;
case "HairSocket":
hair = child.gameObject;
break;
case "UpperArm.L":
armLeft = child.gameObject;
break;
case "UpperArm.R":
armRight = child.gameObject;
break;
case "MouthSocket":
mouth = child.gameObject;
break;
case "RightHandSocket":
weapon = child.gameObject;
break;
default:
if (child.gameObject.name.Contains("EyePart"))
{
eye = child.gameObject;
}
else if (child.gameObject.name.Contains("EyebrowPart"))
{
eyebrow = child.gameObject;
}
break;
}
FindChildObjectsRecursively(child);
}
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.F5))
{
hide = !hide;
SetCharacterHide(hide);
}
}
private void SetCharacterHide(bool hide)
{
if (hideList != null)
{
if (needRefresh)
{
if (bodyPartObject != null)
FindChildObjectsRecursively(bodyPartObject.transform);
needRefresh=false;
}
tail?.SetActive(!(hide && hideList.hideTail));
eye?.SetActive(!(hide && hideList.hideEyes));
eyebrow?.SetActive(!(hide && hideList.hideEyebrow));
mouth?.SetActive(!(hide && hideList.hideMouth));
hair?.SetActive(!(hide && hideList.hideHair));
armLeft?.SetActive(!(hide && hideList.hideArmLeft));
armRight?.SetActive(!(hide && hideList.hideArmRight));
thighLeft?.SetActive(!(hide && hideList.hideThighLeft));
thighRight?.SetActive(!(hide && hideList.hideThighRight));
weapon?.SetActive(!(hide && hideList.hideWeapon));
healthBar?.SetActive(!(hide && hideList.hideHealthBar));
}
foreach (var o in rendererList)
{
o.enabled = !hide;
}
}
}
}

18
HideCharacter/HideList.cs Normal file
View File

@@ -0,0 +1,18 @@
namespace HideCharacter
{
public class HideList
{
public bool hideTail = true;
public bool hideEyes = true;
public bool hideEyebrow = true;
public bool hideHair = true;
public bool hideMouth = true;
public bool hideArmLeft = true;
public bool hideArmRight = false;
public bool hideThighLeft = true;
public bool hideThighRight = true;
public bool hideWeapon = false;
public bool hideHealthBar = true;
}
}

View File

@@ -0,0 +1,40 @@

using UnityEngine;
using Object = UnityEngine.Object; // 确保引入 UnityEngine 命名空间
namespace HideCharacter
{
public class ModBehaviour : Duckov.Modding.ModBehaviour
{
private GameObject? _hideCharacterManagerGameObject=null;
private const string CHILD_GAMEOBJECT_NAME = "HideCharacterManager";
protected override void OnAfterSetup()
{
AddHideComponent();
}
protected override void OnBeforeDeactivate()
{
RemoveHideComponent();
}
private void AddHideComponent()
{
var childTransform = this.transform.Find(CHILD_GAMEOBJECT_NAME);
if (childTransform) return;
_hideCharacterManagerGameObject = new GameObject(CHILD_GAMEOBJECT_NAME);
_hideCharacterManagerGameObject.transform.SetParent(this.transform);
_hideCharacterManagerGameObject.AddComponent<HideCharacterComponent>();
}
private void RemoveHideComponent()
{
if (_hideCharacterManagerGameObject)
Destroy(_hideCharacterManagerGameObject);
}
}
}

View File

@@ -0,0 +1,68 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v9.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"HideCharacter/1.0.0": {
"dependencies": {
"Lib.Harmony": "2.4.1",
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"HideCharacter.dll": {}
}
},
"Lib.Harmony/2.4.1": {
"dependencies": {
"System.Text.Json": "9.0.1"
},
"runtime": {
"lib/net9.0/0Harmony.dll": {
"assemblyVersion": "2.4.1.0",
"fileVersion": "2.4.1.0"
}
}
},
"Newtonsoft.Json/13.0.4": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.4.30916"
}
}
},
"System.Text.Json/9.0.1": {}
}
},
"libraries": {
"HideCharacter/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Lib.Harmony/2.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iLTZi/kKKB18jYEIwReZSx2xXyVUh4J1swReMgvYBBBn4tzA1Nd0PJlVyntY5BDdSiXSxzmvjc/3OYfFs0YwFg==",
"path": "lib.harmony/2.4.1",
"hashPath": "lib.harmony.2.4.1.nupkg.sha512"
},
"Newtonsoft.Json/13.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==",
"path": "newtonsoft.json/13.0.4",
"hashPath": "newtonsoft.json.13.0.4.nupkg.sha512"
},
"System.Text.Json/9.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-eqWHDZqYPv1PvuvoIIx5pF74plL3iEOZOl/0kQP+Y0TEbtgNnM2W6k8h8EPYs+LTJZsXuWa92n5W5sHTWvE3VA==",
"path": "system.text.json/9.0.1",
"hashPath": "system.text.json.9.0.1.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,52 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v9.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"HideCharacter/1.0.0": {
"dependencies": {
"Lib.Harmony": "2.4.1"
},
"runtime": {
"HideCharacter.dll": {}
}
},
"Lib.Harmony/2.4.1": {
"dependencies": {
"System.Text.Json": "9.0.1"
},
"runtime": {
"lib/net9.0/0Harmony.dll": {
"assemblyVersion": "2.4.1.0",
"fileVersion": "2.4.1.0"
}
}
},
"System.Text.Json/9.0.1": {}
}
},
"libraries": {
"HideCharacter/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Lib.Harmony/2.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iLTZi/kKKB18jYEIwReZSx2xXyVUh4J1swReMgvYBBBn4tzA1Nd0PJlVyntY5BDdSiXSxzmvjc/3OYfFs0YwFg==",
"path": "lib.harmony/2.4.1",
"hashPath": "lib.harmony.2.4.1.nupkg.sha512"
},
"System.Text.Json/9.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-eqWHDZqYPv1PvuvoIIx5pF74plL3iEOZOl/0kQP+Y0TEbtgNnM2W6k8h8EPYs+LTJZsXuWa92n5W5sHTWvE3VA==",
"path": "system.text.json/9.0.1",
"hashPath": "system.text.json.9.0.1.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("HideCharacter")]
[assembly: System.Reflection.AssemblyTitleAttribute("HideCharacter")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
dae6dbab2d5a234d9270a5b902ffce8a75e41587e20f8a2b6bca7c468f962706

View File

@@ -0,0 +1,8 @@
is_global = true
build_property.RootNamespace = HideCharacter
build_property.ProjectDir = d:\vs_project\DuckovMods\HideCharacter\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle =
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@@ -0,0 +1 @@
25b4fbc72e02fa26f694d23ed2f2e54f063851d37f15458c1d186fb4218ff1a3

View File

@@ -0,0 +1,12 @@
D:\vs_project\ThirdPersonCamera\HideCharacter\bin\Debug\HideCharacter.deps.json
D:\vs_project\ThirdPersonCamera\HideCharacter\bin\Debug\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\bin\Debug\HideCharacter.pdb
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.csproj.AssemblyReference.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.GeneratedMSBuildEditorConfig.editorconfig
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.AssemblyInfoInputs.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.AssemblyInfo.cs
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.csproj.CoreCompileInputs.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\refint\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\HideCharacter.pdb
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Debug\ref\HideCharacter.dll

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,83 @@
{
"format": 1,
"restore": {
"D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj": {}
},
"projects": {
"D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj",
"projectName": "HideCharacter",
"projectPath": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj",
"packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\",
"outputPath": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\vsShare\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Lenovo\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netstandard2.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "9.0.300"
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"dependencies": {
"Lib.Harmony": {
"target": "Package",
"version": "[2.4.1, )"
},
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.4, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"NETStandard.Library": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Lenovo\.nuget\packages\;D:\vsShare\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Lenovo\.nuget\packages\" />
<SourceRoot Include="D:\vsShare\NuGetPackages\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("HideCharacter")]
[assembly: System.Reflection.AssemblyTitleAttribute("HideCharacter")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
437a77986ec6f3a8f9a36a1880ef78a303cf6060d04e3fed2480735ab9210d4a

View File

@@ -0,0 +1,8 @@
is_global = true
build_property.RootNamespace = HideCharacter
build_property.ProjectDir = D:\vs_project\ThirdPersonCamera\HideCharacter\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle =
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@@ -0,0 +1 @@
b9443e15139f8eafd545941efac2b184f22ba6bbbc52bcbe6e7426113697aef7

View File

@@ -0,0 +1,10 @@
D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter\HideCharacter.deps.json
D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.csproj.AssemblyReference.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.GeneratedMSBuildEditorConfig.editorconfig
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.AssemblyInfoInputs.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.AssemblyInfo.cs
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.csproj.CoreCompileInputs.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.dll
D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter\HideCharacter.pdb
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\HideCharacter.pdb

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("HideCharacter")]
[assembly: System.Reflection.AssemblyTitleAttribute("HideCharacter")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
437a77986ec6f3a8f9a36a1880ef78a303cf6060d04e3fed2480735ab9210d4a

View File

@@ -0,0 +1,15 @@
is_global = true
build_property.TargetFramework = net9.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = HideCharacter
build_property.ProjectDir = D:\vs_project\ThirdPersonCamera\HideCharacter\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 9.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
1a6306222befc59fe5184f96975367221a976c3875f6800b2ec274e243a413bf

View File

@@ -0,0 +1,15 @@
D:\vs_project\ThirdPersonCamera\HideCharacter\bin\Release\net9.0\HideCharacter.deps.json
D:\vs_project\ThirdPersonCamera\HideCharacter\bin\Release\net9.0\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\bin\Release\net9.0\HideCharacter.pdb
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.csproj.AssemblyReference.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.GeneratedMSBuildEditorConfig.editorconfig
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.AssemblyInfoInputs.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.AssemblyInfo.cs
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.csproj.CoreCompileInputs.cache
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\refint\HideCharacter.dll
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\HideCharacter.pdb
D:\vs_project\ThirdPersonCamera\HideCharacter\obj\Release\net9.0\ref\HideCharacter.dll
D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter\net9.0\HideCharacter.deps.json
D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter\net9.0\HideCharacter.dll
D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\HideCharacter\net9.0\HideCharacter.pdb

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,287 @@
{
"version": 3,
"targets": {
".NETStandard,Version=v2.1": {
"Lib.Harmony/2.4.1": {
"type": "package",
"dependencies": {
"Lib.Harmony.Ref": "2.4.1"
},
"compile": {
"lib/netstandard2.0/_._": {}
},
"runtime": {
"lib/netstandard2.0/_._": {}
}
},
"Lib.Harmony.Ref/2.4.1": {
"type": "package",
"dependencies": {
"System.Reflection.Emit": "4.7.0"
},
"compile": {
"ref/netstandard2.0/0Harmony.dll": {
"related": ".xml"
}
}
},
"Newtonsoft.Json/13.0.4": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"System.Reflection.Emit/4.7.0": {
"type": "package",
"compile": {
"ref/netstandard2.1/_._": {}
},
"runtime": {
"lib/netstandard2.1/_._": {}
}
}
}
},
"libraries": {
"Lib.Harmony/2.4.1": {
"sha512": "iLTZi/kKKB18jYEIwReZSx2xXyVUh4J1swReMgvYBBBn4tzA1Nd0PJlVyntY5BDdSiXSxzmvjc/3OYfFs0YwFg==",
"type": "package",
"path": "lib.harmony/2.4.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"HarmonyLogo.png",
"LICENSE",
"README.md",
"lib.harmony.2.4.1.nupkg.sha512",
"lib.harmony.nuspec",
"lib/net35/0Harmony.dll",
"lib/net35/0Harmony.pdb",
"lib/net35/0Harmony.xml",
"lib/net452/0Harmony.dll",
"lib/net452/0Harmony.pdb",
"lib/net452/0Harmony.xml",
"lib/net472/0Harmony.dll",
"lib/net472/0Harmony.pdb",
"lib/net472/0Harmony.xml",
"lib/net48/0Harmony.dll",
"lib/net48/0Harmony.pdb",
"lib/net48/0Harmony.xml",
"lib/net5.0/0Harmony.dll",
"lib/net5.0/0Harmony.pdb",
"lib/net5.0/0Harmony.xml",
"lib/net6.0/0Harmony.dll",
"lib/net6.0/0Harmony.pdb",
"lib/net6.0/0Harmony.xml",
"lib/net7.0/0Harmony.dll",
"lib/net7.0/0Harmony.pdb",
"lib/net7.0/0Harmony.xml",
"lib/net8.0/0Harmony.dll",
"lib/net8.0/0Harmony.pdb",
"lib/net8.0/0Harmony.xml",
"lib/net9.0/0Harmony.dll",
"lib/net9.0/0Harmony.pdb",
"lib/net9.0/0Harmony.xml",
"lib/netcoreapp3.0/0Harmony.dll",
"lib/netcoreapp3.0/0Harmony.pdb",
"lib/netcoreapp3.0/0Harmony.xml",
"lib/netcoreapp3.1/0Harmony.dll",
"lib/netcoreapp3.1/0Harmony.pdb",
"lib/netcoreapp3.1/0Harmony.xml",
"lib/netstandard2.0/_._"
]
},
"Lib.Harmony.Ref/2.4.1": {
"sha512": "+u1y2Qd6OlSUQ8JtrsrSo3adnAsrXMJ2YPYtbW+FAmdPI5yw34M9VX4bKl8ZwRuUzaGzZIz+oGMbn/yS4fWtZw==",
"type": "package",
"path": "lib.harmony.ref/2.4.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"HarmonyLogo.png",
"LICENSE",
"README.md",
"lib.harmony.ref.2.4.1.nupkg.sha512",
"lib.harmony.ref.nuspec",
"ref/netstandard2.0/0Harmony.dll",
"ref/netstandard2.0/0Harmony.xml"
]
},
"Newtonsoft.Json/13.0.4": {
"sha512": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==",
"type": "package",
"path": "newtonsoft.json/13.0.4",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.md",
"README.md",
"lib/net20/Newtonsoft.Json.dll",
"lib/net20/Newtonsoft.Json.xml",
"lib/net35/Newtonsoft.Json.dll",
"lib/net35/Newtonsoft.Json.xml",
"lib/net40/Newtonsoft.Json.dll",
"lib/net40/Newtonsoft.Json.xml",
"lib/net45/Newtonsoft.Json.dll",
"lib/net45/Newtonsoft.Json.xml",
"lib/net6.0/Newtonsoft.Json.dll",
"lib/net6.0/Newtonsoft.Json.xml",
"lib/netstandard1.0/Newtonsoft.Json.dll",
"lib/netstandard1.0/Newtonsoft.Json.xml",
"lib/netstandard1.3/Newtonsoft.Json.dll",
"lib/netstandard1.3/Newtonsoft.Json.xml",
"lib/netstandard2.0/Newtonsoft.Json.dll",
"lib/netstandard2.0/Newtonsoft.Json.xml",
"newtonsoft.json.13.0.4.nupkg.sha512",
"newtonsoft.json.nuspec",
"packageIcon.png"
]
},
"System.Reflection.Emit/4.7.0": {
"sha512": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==",
"type": "package",
"path": "system.reflection.emit/4.7.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/netcore50/System.Reflection.Emit.dll",
"lib/netcoreapp2.0/_._",
"lib/netstandard1.1/System.Reflection.Emit.dll",
"lib/netstandard1.1/System.Reflection.Emit.xml",
"lib/netstandard1.3/System.Reflection.Emit.dll",
"lib/netstandard2.0/System.Reflection.Emit.dll",
"lib/netstandard2.0/System.Reflection.Emit.xml",
"lib/netstandard2.1/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcoreapp2.0/_._",
"ref/netstandard1.1/System.Reflection.Emit.dll",
"ref/netstandard1.1/System.Reflection.Emit.xml",
"ref/netstandard1.1/de/System.Reflection.Emit.xml",
"ref/netstandard1.1/es/System.Reflection.Emit.xml",
"ref/netstandard1.1/fr/System.Reflection.Emit.xml",
"ref/netstandard1.1/it/System.Reflection.Emit.xml",
"ref/netstandard1.1/ja/System.Reflection.Emit.xml",
"ref/netstandard1.1/ko/System.Reflection.Emit.xml",
"ref/netstandard1.1/ru/System.Reflection.Emit.xml",
"ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml",
"ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml",
"ref/netstandard2.0/System.Reflection.Emit.dll",
"ref/netstandard2.0/System.Reflection.Emit.xml",
"ref/netstandard2.1/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"runtimes/aot/lib/netcore50/System.Reflection.Emit.dll",
"runtimes/aot/lib/netcore50/System.Reflection.Emit.xml",
"system.reflection.emit.4.7.0.nupkg.sha512",
"system.reflection.emit.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
}
},
"projectFileDependencyGroups": {
".NETStandard,Version=v2.1": [
"Lib.Harmony >= 2.4.1",
"Newtonsoft.Json >= 13.0.4"
]
},
"packageFolders": {
"C:\\Users\\Lenovo\\.nuget\\packages\\": {},
"D:\\vsShare\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj",
"projectName": "HideCharacter",
"projectPath": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj",
"packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\",
"outputPath": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\vsShare\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Lenovo\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netstandard2.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "9.0.300"
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"dependencies": {
"Lib.Harmony": {
"target": "Package",
"version": "[2.4.1, )"
},
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.4, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"NETStandard.Library": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json"
}
}
}
}

View File

@@ -0,0 +1,13 @@
{
"version": 2,
"dgSpecHash": "0fgzUvttKoU=",
"success": true,
"projectFilePath": "D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj",
"expectedPackageFiles": [
"C:\\Users\\Lenovo\\.nuget\\packages\\lib.harmony\\2.4.1\\lib.harmony.2.4.1.nupkg.sha512",
"C:\\Users\\Lenovo\\.nuget\\packages\\lib.harmony.ref\\2.4.1\\lib.harmony.ref.2.4.1.nupkg.sha512",
"C:\\Users\\Lenovo\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512",
"C:\\Users\\Lenovo\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512"
],
"logs": []
}

View File

@@ -0,0 +1 @@
"restore":{"projectUniqueName":"D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj","projectName":"HideCharacter","projectPath":"D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\HideCharacter.csproj","outputPath":"D:\\vs_project\\ThirdPersonCamera\\HideCharacter\\obj\\","projectStyle":"PackageReference","fallbackFolders":["D:\\vsShare\\NuGetPackages"],"originalTargetFrameworks":["netstandard2.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netstandard2.1":{"targetAlias":"netstandard2.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"netstandard2.1":{"targetAlias":"netstandard2.1","dependencies":{"Lib.Harmony":{"target":"Package","version":"[2.4.1, )"},"Newtonsoft.Json":{"target":"Package","version":"[13.0.4, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"NETStandard.Library":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json"}}

View File

@@ -0,0 +1 @@
17619695316822345

View File

@@ -0,0 +1 @@
17619695316822345

View File

@@ -0,0 +1,39 @@
using System.Reflection;
using UnityEngine;
namespace SceneSnapshot
{
public class ModBehaviour : Duckov.Modding.ModBehaviour
{
protected override void OnAfterSetup()
{
AddPrintToolToScene();
}
protected override void OnBeforeDeactivate()
{
RemovePrintToolFromScene();
}
/// <summary>
/// 检查场景中是否已存在PrintTool如果不存在则添加一个新的。
/// </summary>
private void AddPrintToolToScene()
{
if (GameObject.FindObjectOfType<PrintTool>() == null)
{
var printToolGO = new GameObject("PrintTool_Monitor");
printToolGO.transform.SetParent(this.transform);
printToolGO.AddComponent<PrintTool>();
}
}
private void RemovePrintToolFromScene()
{
var printTool = GameObject.FindObjectOfType<PrintTool>();
if (printTool != null)
{
GameObject.Destroy(printTool.gameObject);
}
}
}
}

184
SceneSnapshot/PrintTool.cs Normal file
View File

@@ -0,0 +1,184 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
namespace SceneSnapshot
{
internal class PrintTool : MonoBehaviour
{
private const string FOLDER_NAME = "GameObjectSnapshots";
private void Update()
{
if (Input.GetKeyDown(KeyCode.F2)) CaptureAndPrintSceneInfo();
}
private void CaptureAndPrintSceneInfo()
{
var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var outputFolderPath = Path.Combine(desktopPath, FOLDER_NAME);
try
{
if (!Directory.Exists(outputFolderPath))
{
Directory.CreateDirectory(outputFolderPath);
Debug.Log($"创建输出文件夹: {outputFolderPath}");
}
}
catch (Exception ex)
{
Debug.LogError($"创建文件夹失败: {outputFolderPath} - {ex.Message}");
return;
}
var activeSceneName = SceneManager.GetActiveScene().name;
var timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
var fileName = $"{activeSceneName}_FullSnapshot_{timestamp}.txt"; // 修改文件名以示区别
var fullFilePath = Path.Combine(outputFolderPath, fileName);
var sb = new StringBuilder();
sb.AppendLine("=================================================");
sb.AppendLine($"场景信息快照 - 活跃场景: {activeSceneName}");
sb.AppendLine($"生成时间: {DateTime.Now}");
sb.AppendLine("=================================================");
sb.AppendLine();
sb.AppendLine("--- 鼠标位置对象信息 ---");
AppendMouseHoverObjectInfo(sb);
sb.AppendLine();
sb.AppendLine("--- 所有加载场景的活跃游戏对象层次结构及其组件 ---");
// 遍历所有已加载的场景
for (var i = 0; i < SceneManager.sceneCount; i++)
{
var currentScene = SceneManager.GetSceneAt(i);
// 打印场景名称作为分割线
sb.AppendLine($"\n===== 场景: {currentScene.name} ===== " +
(currentScene == SceneManager.GetActiveScene() ? "(活跃场景)" : ""));
GameObject[] rootObjects = currentScene.GetRootGameObjects();
if (rootObjects.Length == 0)
sb.AppendLine(" - 该场景没有根游戏对象。");
else
foreach (var go in rootObjects)
AppendGameObjectInfo(go, 0, sb);
}
sb.AppendLine("=================================================");
try
{
File.WriteAllText(fullFilePath, sb.ToString(), Encoding.UTF8);
Debug.Log($"场景信息已成功保存到: {fullFilePath}");
}
catch (Exception ex)
{
Debug.LogError($"保存文件失败: {fullFilePath} - {ex.Message}");
}
}
/// <summary>
/// 递归地将游戏对象的名称、活跃状态、组件及其子对象的层次结构追加到StringBuilder。
/// **注意:此方法只会处理活跃状态为 activeSelf 的对象。**
/// </summary>
/// <param name="go">要处理的游戏对象。</param>
/// <param name="indentLevel">当前缩进级别。</param>
/// <param name="sb">StringBuilder实例。</param>
private void AppendGameObjectInfo(GameObject go, int indentLevel, StringBuilder sb)
{
// 只有当对象自身是激活状态时才处理和打印
if (!go || !go.activeSelf) return;
var indent = new string(' ', indentLevel * 4); // 每个层级使用4个空格缩进
// 打印游戏对象名称和活跃状态
sb.AppendLine(
$"{indent}[{go.name}] (ActiveSelf: {go.activeSelf}, ActiveInHierarchy: {go.activeInHierarchy})");
// 打印所有组件
var components = go.GetComponents<Component>();
foreach (var comp in components)
if (comp) // 某些组件可能在运行时被销毁
sb.AppendLine($"{indent} - Component: {comp.GetType().Name}");
// 递归处理子对象
foreach (Transform child in go.transform) AppendGameObjectInfo(child.gameObject, indentLevel + 1, sb);
}
/// <summary>
/// 尝试检测鼠标位置下方的UI元素或场景对象并将其路径追加到StringBuilder。
/// </summary>
/// <param name="sb">StringBuilder实例。</param>
private void AppendMouseHoverObjectInfo(StringBuilder sb)
{
// 首先尝试Raycast UI元素
var eventDataCurrentPosition = new PointerEventData(EventSystem.current);
eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
var results = new List<RaycastResult>();
if (EventSystem.current) EventSystem.current.RaycastAll(eventDataCurrentPosition, results);
if (results.Count > 0)
{
// UI元素优先级更高
var uiObject = results[0].gameObject;
var uiPath = GetGameObjectPath(uiObject);
sb.AppendLine($"鼠标下方UI路径: {uiPath}");
sb.AppendLine($" - 所在场景: {uiObject.scene.name}"); // 添加所在场景信息
return;
}
// 如果没有UI元素尝试Raycast场景对象
if (Camera.main != null)
{
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
var sceneObjectPath = GetGameObjectPath(hit.collider.gameObject);
sb.AppendLine($"鼠标下方场景对象路径: {sceneObjectPath}");
sb.AppendLine($" - 所在场景: {hit.collider.gameObject.scene.name}"); // 添加所在场景信息
return;
}
}
else
{
sb.AppendLine("警告: 场景中没有主摄像机(Camera.main)或未被标记为 'MainCamera'。无法检测鼠标下的场景对象。");
}
sb.AppendLine("鼠标位置处没有检测到UI元素或场景对象。");
}
/// <summary>
/// 获取给定游戏对象的完整层次路径。
/// </summary>
/// <param name="go">要获取路径的游戏对象。</param>
/// <returns>游戏对象的完整路径,例如 "Parent/Child/Object"。</returns>
private string GetGameObjectPath(GameObject go)
{
if (go == null) return "N/A";
var path = go.name;
var currentTransform = go.transform;
while (currentTransform.parent != null)
{
currentTransform = currentTransform.parent;
path = currentTransform.name + "/" + path;
}
return path;
}
}
}

View File

@@ -0,0 +1,53 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<Nullable>enable</Nullable>
<DuckovPath>D:\steam\steamapps\common\Escape from Duckov</DuckovPath>
<FileVersion>1.0.0</FileVersion>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Authors>折纸的小箱子</Authors>
<AssemblyVersion>1.0.0</AssemblyVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\TeamSoda.*">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\ItemStatsSystem.dll">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="Cinemachine">
<HintPath>..\..\..\steam\steamapps\common\Escape from Duckov\Duckov_Data\Managed\Cinemachine.dll</HintPath>
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="FMODUnity">
<HintPath>..\..\..\..\steam\steamapps\common\Escape from Duckov\Duckov_Data\Managed\FMODUnity.dll</HintPath>
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\Unity*">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Lib.Harmony" Version="2.4.1">
<PrivateAssets>none</PrivateAssets>
<IncludeAssets>all</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Compile Remove="PatchGameCameraStart.cs" />
<Compile Remove="PatchGameCameraUpdatePosition.cs" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,59 @@
{
"runtimeTarget": {
"name": ".NETStandard,Version=v2.1/",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETStandard,Version=v2.1": {},
".NETStandard,Version=v2.1/": {
"SceneSnapshot/1.0.0": {
"dependencies": {
"Lib.Harmony": "2.4.1"
},
"runtime": {
"SceneSnapshot.dll": {}
}
},
"Lib.Harmony/2.4.1": {
"dependencies": {
"Lib.Harmony.Ref": "2.4.1"
}
},
"Lib.Harmony.Ref/2.4.1": {
"dependencies": {
"System.Reflection.Emit": "4.7.0"
}
},
"System.Reflection.Emit/4.7.0": {}
}
},
"libraries": {
"SceneSnapshot/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Lib.Harmony/2.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iLTZi/kKKB18jYEIwReZSx2xXyVUh4J1swReMgvYBBBn4tzA1Nd0PJlVyntY5BDdSiXSxzmvjc/3OYfFs0YwFg==",
"path": "lib.harmony/2.4.1",
"hashPath": "lib.harmony.2.4.1.nupkg.sha512"
},
"Lib.Harmony.Ref/2.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+u1y2Qd6OlSUQ8JtrsrSo3adnAsrXMJ2YPYtbW+FAmdPI5yw34M9VX4bKl8ZwRuUzaGzZIz+oGMbn/yS4fWtZw==",
"path": "lib.harmony.ref/2.4.1",
"hashPath": "lib.harmony.ref.2.4.1.nupkg.sha512"
},
"System.Reflection.Emit/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==",
"path": "system.reflection.emit/4.7.0",
"hashPath": "system.reflection.emit.4.7.0.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("SceneSnapshot")]
[assembly: System.Reflection.AssemblyTitleAttribute("SceneSnapshot")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
9fec8384dc42f74ffa6311b0388cf8c299645956b67539fff634ccd09d9549b8

View File

@@ -0,0 +1,8 @@
is_global = true
build_property.RootNamespace = SceneSnapshot
build_property.ProjectDir = d:\vs_project\DuckovMods\SceneSnapshot\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle =
build_property.EnableCodeStyleSeverity =

Binary file not shown.

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("ThirdPersonCamera")]
[assembly: System.Reflection.AssemblyTitleAttribute("ThirdPersonCamera")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
bed85bbaef4d540a5206f9a5805e8fa6d9acf73f3a85aa6dd3abe97dd628dcfc

View File

@@ -0,0 +1,8 @@
is_global = true
build_property.RootNamespace = ThirdPersonCamera
build_property.ProjectDir = D:\vs_project\ThirdPersonCamera\SceneSnapshot\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle =
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("SceneSnapshot")]
[assembly: System.Reflection.AssemblyTitleAttribute("SceneSnapshot")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
41d9ea7fe27904c4107fb3269468e52ccc60f1ef9ff90e8ba447e9f3ce56b11c

View File

@@ -0,0 +1,8 @@
is_global = true
build_property.RootNamespace = SceneSnapshot
build_property.ProjectDir = D:\vs_project\ThirdPersonCamera\SceneSnapshot\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle =
build_property.EnableCodeStyleSeverity =

Binary file not shown.

View File

@@ -0,0 +1 @@
f4ba22fe492b98b1c0c2f276030e74d4bed6243e23d8bd3e1627d88a45c5542c

View File

@@ -0,0 +1,10 @@
D:\vs_project\ThirdPersonCamera\SceneSnapshot\bin\Release\SceneSnapshot.deps.json
D:\vs_project\ThirdPersonCamera\SceneSnapshot\bin\Release\SceneSnapshot.dll
D:\vs_project\ThirdPersonCamera\SceneSnapshot\bin\Release\SceneSnapshot.pdb
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.csproj.AssemblyReference.cache
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.GeneratedMSBuildEditorConfig.editorconfig
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.AssemblyInfoInputs.cache
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.AssemblyInfo.cs
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.csproj.CoreCompileInputs.cache
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.dll
D:\vs_project\ThirdPersonCamera\SceneSnapshot\obj\Release\SceneSnapshot.pdb

Some files were not shown because too many files have changed in this diff Show More