unity-mcp/MCPForUnity/Editor/Helpers
dsarno 91b6f4d8d6
Test/478 matrix4x4 serialization crash (#481)
* Fix #478: Add Matrix4x4Converter to prevent Cinemachine serialization crash

The `get_components` action crashes Unity when serializing Cinemachine
camera components because Newtonsoft.Json accesses computed Matrix4x4
properties (lossyScale, rotation) that call ValidTRS() on non-TRS matrices.

This fix adds a safe Matrix4x4Converter that only accesses raw matrix
elements (m00-m33), avoiding the dangerous computed properties entirely.

Changes:
- Add Matrix4x4Converter to UnityTypeConverters.cs
- Register converter in GameObjectSerializer serializer settings

Tested with Cinemachine 3.1.5 on Unity 6 - get_components now returns
full component data without crashing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add unit tests for Matrix4x4Converter

Tests cover:
- Identity matrix serialization/deserialization
- Translation matrix round-trip
- Degenerate matrix (determinant=0) - key regression test
- Non-TRS matrix (projection) - validates ValidTRS() is never called
- Null handling
- Ensures dangerous properties are not in output

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Address code review feedback

- Fix null handling consistency: return zero matrix instead of identity
  (consistent with missing field defaults of 0f)
- Improve degenerate matrix test to verify:
  - JSON only contains raw mXY properties
  - Values roundtrip correctly
- Rename test to reflect expanded coverage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Move tests to TestProject per review feedback

Moved Matrix4x4ConverterTests from MCPForUnity/Editor/Tests/ to
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/ as requested.

Also added MCPForUnity.Runtime reference to the test asmdef since
the converter lives in the Runtime assembly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix Matrix4x4 deserialization guard + UI Toolkit USS warning

---------

Co-authored-by: Alexander Mangel <cygnusfear@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:53:14 -08:00
..
AssetPathUtility.cs HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
AssetPathUtility.cs.meta Rename plugin folder to MCPForUnity (#303) 2025-10-03 20:23:28 -04:00
CodexConfigHelper.cs Fix manage prefabs (#405) 2025-11-28 18:47:11 -04:00
CodexConfigHelper.cs.meta Rename plugin folder to MCPForUnity (#303) 2025-10-03 20:23:28 -04:00
ConfigJsonBuilder.cs Fix Claude Windows config and CLI status refresh (#412) 2025-12-01 18:01:14 -08:00
ConfigJsonBuilder.cs.meta Rename plugin folder to MCPForUnity (#303) 2025-10-03 20:23:28 -04:00
ExecPath.cs Fix manage prefabs (#405) 2025-11-28 18:47:11 -04:00
ExecPath.cs.meta Add .meta files (#472) 2025-12-19 18:59:19 -04:00
GameObjectSerializer.cs Test/478 matrix4x4 serialization crash (#481) 2025-12-23 15:53:14 -08:00
GameObjectSerializer.cs.meta Rename plugin folder to MCPForUnity (#303) 2025-10-03 20:23:28 -04:00
HttpEndpointUtility.cs Remove distribution settings scriptable object (#473) 2025-12-19 19:11:54 -04:00
HttpEndpointUtility.cs.meta HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
MaterialOps.cs feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
MaterialOps.cs.meta feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
McpConfigurationHelper.cs Simplify MCP client configs (#401) 2025-11-27 18:18:44 -04:00
McpConfigurationHelper.cs.meta Rename plugin folder to MCPForUnity (#303) 2025-10-03 20:23:28 -04:00
McpJobStateStore.cs HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
McpJobStateStore.cs.meta HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
McpLog.cs Fix manage prefabs (#405) 2025-11-28 18:47:11 -04:00
McpLog.cs.meta Add .meta files (#472) 2025-12-19 18:59:19 -04:00
PortManager.cs Fix: Python Detection, Port Conflicts, and Script Creation Reliability (#428) 2025-12-04 13:19:42 -08:00
PortManager.cs.meta Add .meta files (#472) 2025-12-19 18:59:19 -04:00
ProjectIdentityUtility.cs HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
ProjectIdentityUtility.cs.meta HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
RenderPipelineUtility.cs [FIX] Temp Update on Material Assignment (#420) 2025-12-03 00:39:38 -05:00
RenderPipelineUtility.cs.meta [FIX] Temp Update on Material Assignment (#420) 2025-12-03 00:39:38 -05:00
Response.cs Fix manage prefabs (#405) 2025-11-28 18:47:11 -04:00
Response.cs.meta Rename plugin folder to MCPForUnity (#303) 2025-10-03 20:23:28 -04:00
TelemetryHelper.cs Fix manage prefabs (#405) 2025-11-28 18:47:11 -04:00
TelemetryHelper.cs.meta Add .meta files (#472) 2025-12-19 18:59:19 -04:00