Skip to content

Commit 330dcf2

Browse files
fix case 1244430 removing camera comp from prefab (#1953)
* fix case 1244430 removing camera comp from prefab * Updated change log Co-authored-by: sebastienlagarde <[email protected]>
1 parent ef1523f commit 330dcf2

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

com.unity.render-pipelines.high-definition/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
114114
- Fixed a warning in materialevalulation
115115
- Fixed an error when building the player.
116116
- Fixed issue with box light not visible if range is below one and range attenuation is off.
117+
- Fixed an issue that caused a null reference when deleting camera component in a prefab. (case 1244430)
117118

118119
### Changed
119120
- Preparation pass for RTSSShadows to be supported by render graph.

com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraEditor.cs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,32 @@ public void RemoveComponent(Camera camera, IEnumerable<Component> dependencies)
7878
return;
7979
}
8080

81-
Undo.SetCurrentGroupName("Remove HD Camera");
82-
var additionalCameraData = camera.GetComponent<HDAdditionalCameraData>();
83-
if (additionalCameraData)
81+
var isAssetEditing = EditorUtility.IsPersistent(camera);
82+
try
8483
{
85-
Undo.DestroyObjectImmediate(additionalCameraData);
84+
if (isAssetEditing)
85+
{
86+
AssetDatabase.StartAssetEditing();
87+
}
88+
89+
Undo.SetCurrentGroupName("Remove HD Camera");
90+
var additionalCameraData = camera.GetComponent<HDAdditionalCameraData>();
91+
if (additionalCameraData != null)
92+
{
93+
Undo.DestroyObjectImmediate(additionalCameraData);
94+
}
95+
96+
Undo.DestroyObjectImmediate(camera);
97+
}
98+
finally
99+
{
100+
if (isAssetEditing)
101+
{
102+
AssetDatabase.StopAssetEditing();
103+
}
86104
}
87-
Undo.DestroyObjectImmediate(camera);
88105
}
89-
106+
90107
[MenuItem("CONTEXT/Camera/Reset", false, 0)]
91108
static void ResetCamera(MenuCommand menuCommand)
92109
{

0 commit comments

Comments
 (0)