Add Unity Pipeline package support
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a0ab883fda51549426c60701bd05576
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f40406811f5efe4eb95440aebf17388
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+502
@@ -0,0 +1,502 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 2
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 1
|
||||
m_PVRFilteringGaussRadiusAO: 1
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &701989028
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 701989030}
|
||||
- component: {fileID: 701989029}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &701989029
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 701989028}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 13
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize2D: {x: 0.5, y: 0.5}
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShapeRadius: 0.025
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &701989030
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 701989028}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1 &890368703
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 890368707}
|
||||
- component: {fileID: 890368706}
|
||||
- component: {fileID: 890368705}
|
||||
- component: {fileID: 890368704}
|
||||
- component: {fileID: 890368708}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!65 &890368704
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 890368703}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &890368705
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 890368703}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &890368706
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 890368703}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &890368707
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 890368703}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 0.35, z: 0.5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &890368708
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 890368703}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f2e2dbbd2e928074d83ba49a57cb9cfa, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.Pipeline.Samples::Unity.Pipeline.Samples.HotReload.InPlaceHotReloadExample
|
||||
rotationSpeed: 90
|
||||
enableRotation: 1
|
||||
rotationAxis: {x: 0, y: 1, z: 0}
|
||||
moveSpeed: 2
|
||||
enableMovement: 1
|
||||
--- !u!1 &1185268903
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1185268906}
|
||||
- component: {fileID: 1185268905}
|
||||
- component: {fileID: 1185268904}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &1185268904
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1185268903}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &1185268905
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1185268903}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &1185268906
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1185268903}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1623457542
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1623457543}
|
||||
- component: {fileID: 1623457544}
|
||||
m_Layer: 0
|
||||
m_Name: PipelineServer
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1623457543
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1623457542}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 0, z: -0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1623457544
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1623457542}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dd4ab1c9091e0194196b5f5d51cb932f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.Pipeline::Unity.Pipeline.RuntimePipelineManager
|
||||
enableInBuilds: 1
|
||||
port: 0
|
||||
securityLevel: 0
|
||||
customToken:
|
||||
ipAllowlist:
|
||||
- 127.0.0.1
|
||||
requestTimeoutMs: 30000
|
||||
enableAuditLogging: 1
|
||||
autoStart: 1
|
||||
maxWorkItemsPerFrame: 10
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 1185268906}
|
||||
- {fileID: 701989030}
|
||||
- {fileID: 1623457543}
|
||||
- {fileID: 890368707}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a4fb3f52f24e174d9e515c8b77ceb71
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
using UnityEngine;
|
||||
using Unity.Pipeline.HotReload;
|
||||
|
||||
namespace Unity.Pipeline.Samples.HotReload
|
||||
{
|
||||
/// <summary>
|
||||
/// Example demonstrating in-place hot reload editing workflow.
|
||||
///
|
||||
/// Usage:
|
||||
/// 1. Add this component to a GameObject in the scene
|
||||
/// 2. Play the scene - you'll see the object rotating
|
||||
/// 3. Modify the Update() method below (try changing Vector3.up to Vector3.forward)
|
||||
/// 4. Run: reload_file Assets/Samples/HotReload_InPlace/InPlaceHotReloadExample.cs
|
||||
/// 5. See the changes take effect immediately without stopping play mode!
|
||||
///
|
||||
/// Requirements:
|
||||
/// - Only use PUBLIC fields, properties, and methods
|
||||
/// - Private/internal members will cause validation errors
|
||||
/// </summary>
|
||||
public class InPlaceHotReloadExample : MonoBehaviour
|
||||
{
|
||||
[Header("Hot Reload Configuration")]
|
||||
public float rotationSpeed = 90f;
|
||||
public bool enableRotation = true;
|
||||
public Vector3 rotationAxis = Vector3.up;
|
||||
|
||||
[Header("Movement Configuration")]
|
||||
public float moveSpeed = 2f;
|
||||
public bool enableMovement = false;
|
||||
|
||||
[HotReload]
|
||||
void Update()
|
||||
{
|
||||
// Edit this body live, then run: reload_file <this file>
|
||||
// Try changing rotationAxis (e.g. Vector3.up -> Vector3.forward) or the speed.
|
||||
if (enableRotation)
|
||||
{
|
||||
transform.Rotate(rotationAxis, rotationSpeed * Time.deltaTime);
|
||||
}
|
||||
|
||||
if (enableMovement)
|
||||
{
|
||||
var movement = Mathf.Sin(Time.time) * moveSpeed;
|
||||
transform.position = new Vector3(movement, transform.position.y, transform.position.z);
|
||||
}
|
||||
}
|
||||
|
||||
[HotReload]
|
||||
public void ResetTransform()
|
||||
{
|
||||
// Another method you can hot reload
|
||||
transform.position = Vector3.zero;
|
||||
transform.rotation = Quaternion.identity;
|
||||
Debug.Log("Transform reset via hot reload!");
|
||||
}
|
||||
|
||||
// Note: value-returning methods are not yet supported by in-place reload (void methods only),
|
||||
// so this one is a normal method.
|
||||
public float CalculateDistance(Vector3 targetPosition)
|
||||
{
|
||||
return Vector3.Distance(transform.position, targetPosition);
|
||||
}
|
||||
|
||||
void Awake()
|
||||
{
|
||||
// Run the sample in a 640x480 window instead of fullscreen.
|
||||
Screen.SetResolution(640, 480, FullScreenMode.Windowed);
|
||||
}
|
||||
|
||||
// Regular methods (not hot reloadable) - these work normally
|
||||
void Start()
|
||||
{
|
||||
Debug.Log($"InPlaceHotReloadExample started. Try hot reloading the Update method!");
|
||||
Debug.Log($"Command: reload_file {GetType().Name}.cs");
|
||||
}
|
||||
|
||||
public void TriggerResetFromUI()
|
||||
{
|
||||
// This calls the hot reloadable method
|
||||
ResetTransform();
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f2e2dbbd2e928074d83ba49a57cb9cfa
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 683c08de2e0fa9c4e8042353b200ce2b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
using Unity.Pipeline.HotReload;
|
||||
using UnityEngine;
|
||||
|
||||
public class BossController : MonoBehaviour
|
||||
{
|
||||
void Awake()
|
||||
{
|
||||
// Run the sample in a 640x480 window instead of fullscreen.
|
||||
Screen.SetResolution(640, 480, FullScreenMode.Windowed);
|
||||
}
|
||||
|
||||
// No manual registration needed: RuntimePipelineManager auto-discovers [HotReloadWithOverrides] methods.
|
||||
|
||||
[HotReloadWithOverrides]
|
||||
void Update()
|
||||
{
|
||||
HotReloadHelper.ExecuteWithHotReload(this, "Update", OriginalUpdate);
|
||||
}
|
||||
|
||||
public void OriginalUpdate()
|
||||
{
|
||||
transform.Rotate(45 * Time.deltaTime, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eedf5d75fab7b1e408a621dd7c0ab911
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
using Unity.Pipeline.HotReload;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Hot reload overrides for <see cref="BossController"/> (helper workflow).
|
||||
///
|
||||
/// The override lives in its OWN file and does NOT redeclare BossController, so it binds to the
|
||||
/// running type. Edit the tweaked logic here, then apply it without leaving play mode:
|
||||
/// unity command reload_file_override "(absolute path)/Samples/HotReload_WithHelpers/BossOverrides.cs"
|
||||
/// </summary>
|
||||
public static class BossOverrides
|
||||
{
|
||||
[HotReloadOverrideMethod("BossController.Update")]
|
||||
public static void TweakedUpdate(BossController instance)
|
||||
{
|
||||
// Tweaked behaviour: add a color pulse for visual feedback.
|
||||
var renderer = instance.GetComponent<Renderer>();
|
||||
if (renderer != null)
|
||||
{
|
||||
renderer.material.color = Color.Lerp(Color.red, Color.yellow, Mathf.Sin(Time.time * 2f) * 0.5f + 0.5f);
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 778e3a9bb56e4b5c8576ce8fa9460763
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+206
@@ -0,0 +1,206 @@
|
||||
using System.Reflection;
|
||||
using Unity.Pipeline.HotReload;
|
||||
using Unity.Pipeline.Samples.HotReload;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.Pipeline.Samples.HotReload
|
||||
{
|
||||
/// <summary>
|
||||
/// Test manager for manually testing hot reload functionality in Unity Editor.
|
||||
/// Add this to a GameObject and use the inspector buttons or call methods from console.
|
||||
/// </summary>
|
||||
public class HotReloadTestManager : MonoBehaviour
|
||||
{
|
||||
[Header("Test References")]
|
||||
public TestPlayerController testPlayer;
|
||||
|
||||
[Header("Test Controls")]
|
||||
[SerializeField] private bool autoFindPlayer = true;
|
||||
[SerializeField] private bool showDebugLogs = true;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (autoFindPlayer && testPlayer == null)
|
||||
{
|
||||
testPlayer = FindAnyObjectByType<TestPlayerController>();
|
||||
}
|
||||
|
||||
if (showDebugLogs)
|
||||
{
|
||||
Debug.Log("=== HOT RELOAD TEST MANAGER ===");
|
||||
Debug.Log("Use the buttons in the inspector or call these methods from console:");
|
||||
Debug.Log("- RegisterTestMethods() - Register player methods for hot reload");
|
||||
Debug.Log("- SimulateHotReloadOverride() - Apply hot reload overrides manually");
|
||||
Debug.Log("- ClearHotReload() - Remove hot reload overrides");
|
||||
Debug.Log("- ShowRegistryStats() - Display current hot reload state");
|
||||
Debug.Log("- TestPlayerActions() - Test player methods");
|
||||
}
|
||||
}
|
||||
|
||||
[ContextMenu("Register Test Methods")]
|
||||
public void RegisterTestMethods()
|
||||
{
|
||||
if (testPlayer == null)
|
||||
{
|
||||
Debug.LogError("No TestPlayerController assigned!");
|
||||
return;
|
||||
}
|
||||
|
||||
// TestPlayerController.RegisterOverrides();
|
||||
Debug.Log("✅ Registered TestPlayerController methods for hot reload");
|
||||
ShowRegistryStats();
|
||||
}
|
||||
|
||||
[ContextMenu("Simulate Hot Reload Override")]
|
||||
public void SimulateHotReloadOverride()
|
||||
{
|
||||
// Manually register the override methods from TestPlayerOverrides
|
||||
var overrideType = typeof(TestPlayerOverrides);
|
||||
|
||||
var updateOverride = overrideType.GetMethod("Update");
|
||||
var moveOverride = overrideType.GetMethod("Move");
|
||||
var damageOverride = overrideType.GetMethod("CalculateDamage");
|
||||
var takeDamageOverride = overrideType.GetMethod("TakeDamage");
|
||||
|
||||
if (updateOverride != null)
|
||||
{
|
||||
HotReloadRegistry.RegisterMethodOverride(updateOverride,
|
||||
new HotReloadOverrideMethodAttribute("TestPlayerController.Update"), overrideType);
|
||||
}
|
||||
|
||||
if (moveOverride != null)
|
||||
{
|
||||
HotReloadRegistry.RegisterMethodOverride(moveOverride,
|
||||
new HotReloadOverrideMethodAttribute("TestPlayerController.Move"), overrideType);
|
||||
}
|
||||
|
||||
if (damageOverride != null)
|
||||
{
|
||||
HotReloadRegistry.RegisterMethodOverride(damageOverride,
|
||||
new HotReloadOverrideMethodAttribute("PlayerCombat"), overrideType);
|
||||
}
|
||||
|
||||
if (takeDamageOverride != null)
|
||||
{
|
||||
HotReloadRegistry.RegisterMethodOverride(takeDamageOverride,
|
||||
new HotReloadOverrideMethodAttribute("TestPlayerController.TakeDamage"), overrideType);
|
||||
}
|
||||
|
||||
Debug.Log("🔥 Applied hot reload overrides! Player behavior should now be different.");
|
||||
ShowRegistryStats();
|
||||
|
||||
if (testPlayer != null)
|
||||
{
|
||||
testPlayer.LogHotReloadStatus();
|
||||
}
|
||||
}
|
||||
|
||||
[ContextMenu("Clear Hot Reload")]
|
||||
public void ClearHotReload()
|
||||
{
|
||||
HotReloadRegistry.ClearAllOverrides();
|
||||
Debug.Log("🧹 Cleared hot reload overrides. Player should return to original behavior.");
|
||||
ShowRegistryStats();
|
||||
}
|
||||
|
||||
[ContextMenu("Show Registry Stats")]
|
||||
public void ShowRegistryStats()
|
||||
{
|
||||
var stats = HotReloadRegistry.GetStats();
|
||||
Debug.Log($"📊 Hot Reload Stats:");
|
||||
Debug.Log($" Reloadable Methods: {stats.ReloadableMethodCount}");
|
||||
Debug.Log($" Active Overrides: {stats.ActiveOverrideCount}");
|
||||
Debug.Log($" Loaded Types: {stats.LoadedTypeCount}");
|
||||
|
||||
if (stats.ReloadableMethodIds.Count > 0)
|
||||
{
|
||||
Debug.Log($" Reloadable Method IDs: {string.Join(", ", stats.ReloadableMethodIds)}");
|
||||
}
|
||||
|
||||
if (stats.ActiveOverrideIds.Count > 0)
|
||||
{
|
||||
Debug.Log($" Active Override IDs: {string.Join(", ", stats.ActiveOverrideIds)}");
|
||||
}
|
||||
}
|
||||
|
||||
[ContextMenu("Test Player Actions")]
|
||||
public void TestPlayerActions()
|
||||
{
|
||||
if (testPlayer == null)
|
||||
{
|
||||
Debug.LogError("No TestPlayerController assigned!");
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log("🎮 Testing player actions...");
|
||||
|
||||
testPlayer.TestMovement();
|
||||
testPlayer.TestDamage();
|
||||
testPlayer.LogHotReloadStatus();
|
||||
|
||||
Debug.Log($" Last Action: {testPlayer.lastActionLog}");
|
||||
Debug.Log($" Health: {testPlayer.health}");
|
||||
Debug.Log($" Last Movement: {testPlayer.lastMovement}");
|
||||
}
|
||||
|
||||
[ContextMenu("Reset Test Environment")]
|
||||
public void ResetTestEnvironment()
|
||||
{
|
||||
HotReloadRegistry.ClearAllForTesting();
|
||||
|
||||
if (testPlayer != null)
|
||||
{
|
||||
testPlayer.health = 100;
|
||||
testPlayer.lastActionLog = "Environment reset";
|
||||
testPlayer.lastMovement = Vector3.zero;
|
||||
testPlayer.lastDamageCalculated = 0;
|
||||
}
|
||||
|
||||
Debug.Log("🔄 Reset test environment to clean state");
|
||||
}
|
||||
|
||||
// Keyboard shortcuts for quick testing
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.F1))
|
||||
{
|
||||
RegisterTestMethods();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.F2))
|
||||
{
|
||||
SimulateHotReloadOverride();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.F3))
|
||||
{
|
||||
ClearHotReload();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.F4))
|
||||
{
|
||||
TestPlayerActions();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.F5))
|
||||
{
|
||||
ShowRegistryStats();
|
||||
}
|
||||
}
|
||||
|
||||
void OnGUI()
|
||||
{
|
||||
GUILayout.BeginArea(new Rect(10, 10, 300, 200));
|
||||
GUILayout.Label("Hot Reload Testing (F1-F5):");
|
||||
GUILayout.Label("F1: Register Methods");
|
||||
GUILayout.Label("F2: Apply Hot Reload");
|
||||
GUILayout.Label("F3: Clear Hot Reload");
|
||||
GUILayout.Label("F4: Test Actions");
|
||||
GUILayout.Label("F5: Show Stats");
|
||||
|
||||
if (testPlayer != null)
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
GUILayout.Label($"Status: {testPlayer.lastActionLog}");
|
||||
GUILayout.Label($"Health: {testPlayer.health}");
|
||||
}
|
||||
GUILayout.EndArea();
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ab9d64d0dbf76644abf31ebe245bedb
|
||||
+631
@@ -0,0 +1,631 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 2
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 1
|
||||
m_PVRFilteringGaussRadiusAO: 1
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &434715460
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 434715462}
|
||||
- component: {fileID: 434715461}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &434715461
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 434715460}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 12
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize2D: {x: 0.5, y: 0.5}
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &434715462
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 434715460}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1 &494037149
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 494037151}
|
||||
- component: {fileID: 494037150}
|
||||
m_Layer: 0
|
||||
m_Name: PipelineServer
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &494037150
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 494037149}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dd4ab1c9091e0194196b5f5d51cb932f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.Pipeline::Unity.Pipeline.RuntimePipelineManager
|
||||
enableInBuilds: 1
|
||||
port: 0
|
||||
securityLevel: 0
|
||||
customToken:
|
||||
ipAllowlist:
|
||||
- 127.0.0.1
|
||||
requestTimeoutMs: 30000
|
||||
enableAuditLogging: 1
|
||||
autoStart: 1
|
||||
maxWorkItemsPerFrame: 10
|
||||
--- !u!4 &494037151
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 494037149}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 1, y: 0.7, z: 1}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1321733044
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1321733049}
|
||||
- component: {fileID: 1321733048}
|
||||
- component: {fileID: 1321733047}
|
||||
- component: {fileID: 1321733046}
|
||||
- component: {fileID: 1321733045}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1321733045
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1321733044}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3dc859ce66713a54597d865487663ea2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.Pipeline.Samples::Unity.Pipeline.Samples.HotReload.TestPlayerController
|
||||
moveSpeed: 5
|
||||
debugColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
health: 100
|
||||
lastMovement: {x: 0, y: 0, z: 0}
|
||||
lastActionLog: No action yet
|
||||
lastDamageCalculated: 0
|
||||
--- !u!65 &1321733046
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1321733044}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &1321733047
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1321733044}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &1321733048
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1321733044}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1321733049
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1321733044}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 0.35, z: 0.5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1366089692
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1366089695}
|
||||
- component: {fileID: 1366089694}
|
||||
- component: {fileID: 1366089693}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &1366089693
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1366089692}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &1366089694
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1366089692}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &1366089695
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1366089692}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1487321921
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1487321925}
|
||||
- component: {fileID: 1487321924}
|
||||
- component: {fileID: 1487321923}
|
||||
- component: {fileID: 1487321922}
|
||||
- component: {fileID: 1487321926}
|
||||
m_Layer: 0
|
||||
m_Name: Boss
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!136 &1487321922
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1487321921}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5000001
|
||||
m_Height: 2
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
|
||||
--- !u!23 &1487321923
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1487321921}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &1487321924
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1487321921}
|
||||
m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1487321925
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1487321921}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 5, y: 0.35, z: 0.5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1487321926
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1487321921}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: eedf5d75fab7b1e408a621dd7c0ab911, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.Pipeline.Samples::Unity.Pipeline.Samples.BossController
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 1366089695}
|
||||
- {fileID: 434715462}
|
||||
- {fileID: 1321733049}
|
||||
- {fileID: 494037151}
|
||||
- {fileID: 1487321925}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6db5cc709033bf34db56aa9c5c081cc7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
using System.Reflection;
|
||||
using Unity.Pipeline.HotReload;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.Pipeline.Samples.HotReload
|
||||
{
|
||||
/// <summary>
|
||||
/// Test component to demonstrate hot reload functionality in Unity Editor.
|
||||
/// Add this to a GameObject to test the hot reload workflow.
|
||||
/// </summary>
|
||||
public class TestPlayerController : MonoBehaviour
|
||||
{
|
||||
[Header("Hot Reload Test Values")]
|
||||
public float moveSpeed = 5f;
|
||||
public Color debugColor = Color.white;
|
||||
public int health = 100;
|
||||
|
||||
[Header("Runtime Values - Watch These Change")]
|
||||
public Vector3 lastMovement;
|
||||
public string lastActionLog = "No action yet";
|
||||
public float lastDamageCalculated;
|
||||
|
||||
// No manual registration needed: RuntimePipelineManager auto-discovers [HotReloadWithOverrides] methods.
|
||||
|
||||
void Start()
|
||||
{
|
||||
Debug.Log("TestPlayerController: Starting up - ready for hot reload testing");
|
||||
}
|
||||
|
||||
[HotReloadWithOverrides]
|
||||
void Update()
|
||||
{
|
||||
HotReloadHelper.ExecuteWithHotReload(this, "Update", OriginalUpdate);
|
||||
}
|
||||
|
||||
[HotReloadWithOverrides]
|
||||
public void Move(Vector3 direction)
|
||||
{
|
||||
HotReloadHelper.ExecuteWithHotReload(this, "Move",
|
||||
() => OriginalMove(direction), direction);
|
||||
}
|
||||
|
||||
[HotReloadWithOverrides(Id = "PlayerCombat")]
|
||||
public float CalculateDamage(float baseDamage, float multiplier)
|
||||
{
|
||||
var result = HotReloadHelper.ExecuteWithHotReloadCustomId(this, "PlayerCombat",
|
||||
() => OriginalCalculateDamage(baseDamage, multiplier), baseDamage, multiplier);
|
||||
|
||||
return result != null ? (float)result : OriginalCalculateDamage(baseDamage, multiplier);
|
||||
}
|
||||
|
||||
[HotReloadWithOverrides]
|
||||
public void TakeDamage(float damage)
|
||||
{
|
||||
HotReloadHelper.ExecuteWithHotReload(this, "TakeDamage",
|
||||
() => OriginalTakeDamage(damage), damage);
|
||||
}
|
||||
|
||||
// Original implementations
|
||||
private void OriginalUpdate()
|
||||
{
|
||||
// Simple rotation for visual feedback
|
||||
transform.Rotate(0, 45 * Time.deltaTime, 0);
|
||||
lastActionLog = $"Original Update: Rotating at {Time.time:F1}s";
|
||||
|
||||
// Auto-move for testing
|
||||
if (Input.GetKey(KeyCode.Space))
|
||||
{
|
||||
Move(Vector3.forward);
|
||||
}
|
||||
}
|
||||
|
||||
private void OriginalMove(Vector3 direction)
|
||||
{
|
||||
Vector3 movement = direction * moveSpeed * Time.deltaTime;
|
||||
transform.position += movement;
|
||||
lastMovement = movement;
|
||||
lastActionLog = $"Original Move: {movement} at speed {moveSpeed}";
|
||||
}
|
||||
|
||||
private float OriginalCalculateDamage(float baseDamage, float multiplier)
|
||||
{
|
||||
float damage = baseDamage * multiplier;
|
||||
lastDamageCalculated = damage;
|
||||
lastActionLog = $"Original Damage: {baseDamage} * {multiplier} = {damage}";
|
||||
return damage;
|
||||
}
|
||||
|
||||
private void OriginalTakeDamage(float damage)
|
||||
{
|
||||
health = Mathf.Max(0, health - Mathf.RoundToInt(damage));
|
||||
lastActionLog = $"Original TakeDamage: -{damage}, health now {health}";
|
||||
}
|
||||
|
||||
// Test methods you can call from other scripts or console
|
||||
public void TestMovement()
|
||||
{
|
||||
Move(Vector3.right);
|
||||
Debug.Log($"Tested movement: {lastActionLog}");
|
||||
}
|
||||
|
||||
public void TestDamage()
|
||||
{
|
||||
float damage = CalculateDamage(10f, 1.5f);
|
||||
TakeDamage(damage);
|
||||
Debug.Log($"Tested damage: calculated {damage}, {lastActionLog}");
|
||||
}
|
||||
|
||||
public void LogHotReloadStatus()
|
||||
{
|
||||
bool updateActive = HotReloadHelper.IsHotReloadActive<TestPlayerController>("Update");
|
||||
bool moveActive = HotReloadHelper.IsHotReloadActive<TestPlayerController>("Move");
|
||||
bool combatActive = HotReloadHelper.IsHotReloadActive("PlayerCombat");
|
||||
bool damageActive = HotReloadHelper.IsHotReloadActive<TestPlayerController>("TakeDamage");
|
||||
|
||||
Debug.Log($"Hot Reload Status - Update: {updateActive}, Move: {moveActive}, Combat: {combatActive}, TakeDamage: {damageActive}");
|
||||
|
||||
var stats = HotReloadRegistry.GetStats();
|
||||
Debug.Log($"Registry Stats - Reloadable: {stats.ReloadableMethodCount}, Active: {stats.ActiveOverrideCount}, Types: {stats.LoadedTypeCount}");
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3dc859ce66713a54597d865487663ea2
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
using Unity.Pipeline.HotReload;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.Pipeline.Samples.HotReload
|
||||
{
|
||||
/// <summary>
|
||||
/// Hot reload overrides for TestPlayerController.
|
||||
/// This file demonstrates different override patterns and can be compiled manually for testing.
|
||||
///
|
||||
/// You can tweak gameplay code here. When done run:
|
||||
/// ucli request --runtime UnityPipelineTests.exe reload_file_override "(Absolute Path To)\com.unity.pipeline\Samples\HotReload_WithHelpers\TestPlayerOverrides.cs"
|
||||
/// </summary>
|
||||
public static class TestPlayerOverrides
|
||||
{
|
||||
[HotReloadOverrideMethod("TestPlayerController.Update")]
|
||||
public static void Update(TestPlayerController instance)
|
||||
{
|
||||
// HOT RELOAD VERSION: Different behavior
|
||||
instance.transform.Rotate(0, -90 * Time.deltaTime, 0); // Rotate opposite direction
|
||||
instance.lastActionLog = $"HOT RELOAD Update: Reverse rotation at {Time.time:F1}s";
|
||||
|
||||
// Add some color change for visual feedback
|
||||
var renderer = instance.GetComponent<Renderer>();
|
||||
if (renderer != null)
|
||||
{
|
||||
renderer.material.color = Color.Lerp(Color.red, Color.yellow, Mathf.Sin(Time.time * 2f) * 0.5f + 0.5f);
|
||||
}
|
||||
|
||||
// Auto-move with different key
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
{
|
||||
instance.Move(Vector3.up * 0.5f); // Move up instead of forward
|
||||
}
|
||||
}
|
||||
|
||||
[HotReloadOverrideMethod("TestPlayerController.Move")]
|
||||
public static void Move(TestPlayerController instance, Vector3 direction)
|
||||
{
|
||||
// HOT RELOAD VERSION: Faster, bouncy movement
|
||||
Vector3 movement = direction * instance.moveSpeed * 2.5f * Time.deltaTime; // 2.5x faster
|
||||
movement.y += Mathf.Sin(Time.time * 5f) * 0.02f; // Add bounce
|
||||
|
||||
instance.transform.position += movement;
|
||||
instance.lastMovement = movement;
|
||||
instance.lastActionLog = $"HOT RELOAD Move: Bouncy {movement} at 2.5x speed";
|
||||
|
||||
// Add trail effect
|
||||
Debug.DrawRay(instance.transform.position, movement * 10f, Color.cyan, 1f);
|
||||
}
|
||||
|
||||
[HotReloadOverrideMethod("PlayerCombat")]
|
||||
public static float CalculateDamage(TestPlayerController instance, float baseDamage, float multiplier)
|
||||
{
|
||||
// HOT RELOAD VERSION: Different damage formula with randomness
|
||||
float damage = (baseDamage + Random.Range(0f, 5f)) * multiplier * 1.2f; // +randomness, +20% bonus
|
||||
damage = Mathf.Round(damage * 10f) / 10f; // Round to 1 decimal
|
||||
|
||||
instance.lastDamageCalculated = damage;
|
||||
instance.lastActionLog = $"HOT RELOAD Damage: ({baseDamage} + rnd) * {multiplier} * 1.2 = {damage}";
|
||||
|
||||
return damage;
|
||||
}
|
||||
|
||||
[HotReloadOverrideMethod("TestPlayerController.TakeDamage")]
|
||||
public static void TakeDamage(TestPlayerController instance, float damage)
|
||||
{
|
||||
// HOT RELOAD VERSION: Damage reduction and visual feedback
|
||||
float reducedDamage = damage * 0.7f; // 30% damage reduction
|
||||
instance.health = Mathf.Max(0, instance.health - Mathf.RoundToInt(reducedDamage));
|
||||
instance.lastActionLog = $"HOT RELOAD TakeDamage: -{damage} reduced to -{reducedDamage}, health now {instance.health}";
|
||||
|
||||
// Visual feedback
|
||||
var renderer = instance.GetComponent<Renderer>();
|
||||
if (renderer != null)
|
||||
{
|
||||
// Flash red briefly
|
||||
renderer.material.color = Color.red;
|
||||
}
|
||||
|
||||
// Screen shake effect (simple)
|
||||
if (Camera.main != null)
|
||||
{
|
||||
Debug.Log("*SCREEN SHAKE*");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73783215b9f67c0438362983015a686f
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "Unity.Pipeline.Samples",
|
||||
"rootNamespace": "Unity.Pipeline.Samples.HotReload",
|
||||
"references": [
|
||||
"Unity.Pipeline"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fadfe42d23f96db47a2c41e046892acb
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user