feat(#37): Add Unity test foundation and CI workflow#45
Conversation
qda-sw
commented
Mar 1, 2026
- chore: Add .claude, .omc, and .codex to .gitignore
- Squashed commit of the following:
- feat([FEAT] CI / CD #37): add Unity EditMode/PlayMode test foundation and CI workflow
- feat([FEAT] CI / CD #37) : Add Lobby scene EditMode/PlayMode tests and test README
commit 32cf1d0 Merge: 00f6e6d 8647bae Author: SeongWooJeong <[email protected]> Date: Sun Mar 1 04:01:17 2026 +0900 CHORE/41 (#44) - chore(#41): Remove unused dependencies (PUN, Chat) - chore: Add new build profile for resizable Windows application commit 8647bae Author: SeongWooJeong <[email protected]> Date: Sat Feb 28 22:52:51 2026 +0900 chore: Add new build profile for resizable Windows application commit d2a8068 Author: SeongWooJeong <[email protected]> Date: Sat Feb 28 22:51:30 2026 +0900 chore(#41): Remove unused dependencies (PUN, Chat) commit 00f6e6d Author: Cheonseo Lee <[email protected]> Date: Sat Feb 28 05:40:16 2026 +0900 fix(#42): 비밀방 버그 해결 다수 문제 해결 UI는 따로 정리해야 할 것으로 보임 commit 7fd5970 Author: Cheonseo Lee <[email protected]> Date: Sat Feb 28 04:28:11 2026 +0900 fix: 플레이어 가면 교체 로직 commit 1f92979 Merge: ad3038e 3798ac1 Author: Cheonseo Lee <[email protected]> Date: Fri Feb 27 21:45:47 2026 +0900 FEAT/9 (#43) FEAT/9 (#43) commit 3798ac1 Author: Cheonseo Lee <[email protected]> Date: Fri Feb 27 21:45:19 2026 +0900 feat(#9): 단체 댄스 피드백 수정 commit ad3038e Author: HONG <[email protected]> Date: Fri Feb 27 20:51:51 2026 +0900 fix : ui캔버스 구조 수정 commit 0b8333f Author: HONG <[email protected]> Date: Fri Feb 27 20:40:56 2026 +0900 feat : 퍼즈 캔버스 추가
There was a problem hiding this comment.
Pull request overview
This PR introduces a Unity Test Framework/CI workflow and expands runtime UI + VFX behavior, alongside a sizable cleanup/removal of bundled Photon (PUN/Chat) assets and internal .claude/ docs.
Changes:
- Added GitHub Actions workflow to run Unity EditMode and PlayMode tests on PRs.
- Refactored menu/pause/settings UI flow (new
UIPauseManager+UISettingManger, updated ESC handling, updated lobby escape-blocking behavior). - Updated mask change VFX/firework handling and added safer lobby room creation constraints.
Reviewed changes
Copilot reviewed 158 out of 449 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Debugging/PhotonLagSimulationGui.cs.meta | Remove bundled Photon PUN utility asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Debugging/PhotonLagSimulationGui.cs | Remove bundled Photon PUN debugging GUI script |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Debugging.meta | Remove bundled Photon PUN folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/Editor/PhotonUnityNetworking.Utilities.Culling.Editor.asmdef.meta | Remove bundled Photon PUN asmdef metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/Editor/PhotonUnityNetworking.Utilities.Culling.Editor.asmdef | Remove bundled Photon PUN editor asmdef |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/Editor/CullAreaEditor.cs.meta | Remove bundled Photon PUN editor script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/Editor/CullAreaEditor.cs | Remove bundled Photon PUN culling editor script |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/Editor.meta | Remove bundled Photon PUN folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/CullingHandler.cs.meta | Remove bundled Photon PUN culling script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/CullingHandler.cs | Remove bundled Photon PUN culling script |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling/CullArea.cs.meta | Remove bundled Photon PUN culling script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts/Culling.meta | Remove bundled Photon PUN folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/UtilityScripts.meta | Remove bundled Photon PUN folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset.meta | Remove bundled Photon PUN settings asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset | Remove bundled Photon PUN settings asset |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Resources.meta | Remove bundled Photon PUN folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Icons/PunIconApp512.png.meta | Remove bundled Photon PUN icon metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Icons/PunIconApp48.png.meta | Remove bundled Photon PUN icon metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Icons/PunIconApp32.png.meta | Remove bundled Photon PUN icon metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Icons/PunIconApp128.png.meta | Remove bundled Photon PUN icon metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Icons/PunIcon-128.png.meta | Remove bundled Photon PUN icon metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Icons.meta | Remove bundled Photon PUN icons folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonTransformViewClassic.cs.meta | Remove bundled Photon PUN view script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonTransformView.cs.meta | Remove bundled Photon PUN view script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonTransformView.cs | Remove bundled Photon PUN transform sync view |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonRigidbodyView.cs.meta | Remove bundled Photon PUN view script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonRigidbodyView.cs | Remove bundled Photon PUN rigidbody sync view |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonRigidbody2DView.cs.meta | Remove bundled Photon PUN view script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonRigidbody2DView.cs | Remove bundled Photon PUN rigidbody2D sync view |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views/PhotonAnimatorView.cs.meta | Remove bundled Photon PUN animator view metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Views.meta | Remove bundled Photon PUN views folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Utilities/NestedComponentUtilities.cs.meta | Remove bundled Photon PUN utilities metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Utilities.meta | Remove bundled Photon PUN utilities folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/ServerSettings.cs.meta | Remove bundled Photon PUN server settings script metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/ServerSettings.cs | Remove bundled Photon PUN server settings script |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PunClasses.cs.meta | Remove bundled Photon PUN core metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonView.cs.meta | Remove bundled Photon PUN core metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonUnityNetworking.asmdef.meta | Remove bundled Photon PUN asmdef metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonUnityNetworking.asmdef | Remove bundled Photon PUN asmdef |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonStreamQueue.cs.meta | Remove bundled Photon PUN stream queue metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonStreamQueue.cs | Remove bundled Photon PUN stream queue |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs.meta | Remove bundled Photon PUN core metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonNetwork.cs.meta | Remove bundled Photon PUN core metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/PhotonHandler.cs.meta | Remove bundled Photon PUN core metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Interfaces/IPunCallbacks.cs.meta | Remove bundled Photon PUN interfaces metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Interfaces/IPunCallbacks.cs | Remove bundled Photon PUN callback interfaces |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Interfaces/IPhotonViewCallbacks.cs.meta | Remove bundled Photon PUN interfaces metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Interfaces/IPhotonViewCallbacks.cs | Remove bundled Photon PUN view callback interfaces |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Enums.cs.meta | Remove bundled Photon PUN enums metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Enums.cs | Remove bundled Photon PUN enums |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/help.png.meta | Remove bundled Photon PUN editor asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonTransformViewEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonTransformViewEditor.cs | Remove bundled Photon PUN custom inspector |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonTransformViewClassicEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonRigidbodyViewEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonRigidbodyViewEditor.cs | Remove bundled Photon PUN custom inspector |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonRigidbody2DViewEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonRigidbody2DViewEditor.cs | Remove bundled Photon PUN custom inspector |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonAnimatorViewEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/PhotonAnimatorViewEditor.cs | Remove bundled Photon PUN custom inspector |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/MonoBehaviourPunEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views/MonoBehaviourPunEditor.cs | Remove bundled Photon PUN base editor |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/Views.meta | Remove bundled Photon PUN editor folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/ServerSettingsInspector.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/ReordableList/ReorderableListResources.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/ReordableList/LICENSE.txt.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/ReordableList/LICENSE.txt | Remove bundled Photon PUN editor third-party license file |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunSceneSettingsInspector.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunSceneSettingsInspector.cs | Remove bundled Photon PUN scene settings inspector |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunSceneSettingsFile.asset.meta | Remove bundled Photon PUN scene settings asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunSceneSettingsFile.asset | Remove bundled Photon PUN scene settings asset |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunSceneSettings.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunSceneSettings.cs | Remove bundled Photon PUN scene settings script |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PunGradient.png.meta | Remove bundled Photon PUN editor asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonViewInspector.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonViewHandler.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonViewHandler.cs | Remove bundled Photon PUN editor handler |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonUnityNetworking.Editor.asmdef.meta | Remove bundled Photon PUN editor asmdef metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonUnityNetworking.Editor.asmdef | Remove bundled Photon PUN editor asmdef |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonGUI.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/PhotonEditor.cs.meta | Remove bundled Photon PUN editor metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/CopyIconPro.png.meta | Remove bundled Photon PUN editor asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor/CopyIcon.png.meta | Remove bundled Photon PUN editor asset metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/Editor.meta | Remove bundled Photon PUN editor folder metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/CustomTypes.cs.meta | Remove bundled Photon PUN types metadata |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code/CustomTypes.cs | Remove bundled Photon PUN custom type registration |
| GGJ26/Assets/Photon/PhotonUnityNetworking/Code.meta | Remove bundled Photon PUN code folder metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/changes-chat.txt.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/PhotonChat.asmdef.meta | Remove bundled Photon Chat asmdef metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/PhotonChat.asmdef | Remove bundled Photon Chat asmdef |
| GGJ26/Assets/Photon/PhotonChat/Code/IChatClientListener.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/IChatClientListener.cs | Remove bundled Photon Chat listener interface |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatUserStatus.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatUserStatus.cs | Remove bundled Photon Chat user status constants |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatState.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatState.cs | Remove bundled Photon Chat state enum |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatPeer.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatParameterCode.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatParameterCode.cs | Remove bundled Photon Chat param codes |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatOperationCode.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatOperationCode.cs | Remove bundled Photon Chat op codes |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatEventCode.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatEventCode.cs | Remove bundled Photon Chat event codes |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatDisconnectCause.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatDisconnectCause.cs | Remove bundled Photon Chat disconnect causes |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatClient.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatChannel.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatChannel.cs | Remove bundled Photon Chat channel implementation |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatAppSettings.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChatAppSettings.cs | Remove bundled Photon Chat app settings |
| GGJ26/Assets/Photon/PhotonChat/Code/ChannelWellKnownProperties.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChannelWellKnownProperties.cs | Remove bundled Photon Chat constants |
| GGJ26/Assets/Photon/PhotonChat/Code/ChannelCreationOptions.cs.meta | Remove bundled Photon Chat metadata |
| GGJ26/Assets/Photon/PhotonChat/Code/ChannelCreationOptions.cs | Remove bundled Photon Chat channel options |
| GGJ26/Assets/Photon/PhotonChat/Code.meta | Remove bundled Photon Chat folder metadata |
| GGJ26/Assets/03. Prefabs/UI/PauseCanvas.prefab.meta | Meta updated for Pause UI prefab |
| GGJ26/Assets/03. Prefabs/UI/CanvasLobby.prefab.meta | Meta updated for Lobby UI prefab |
| GGJ26/Assets/03. Prefabs/Mask/MaskEffect.prefab | Update mask VFX prefab defaults (lifecycle, VFX asset, gradient) |
| GGJ26/Assets/01. Scripts/UI/UISettingManger.cs.meta | Add meta for new settings manager script |
| GGJ26/Assets/01. Scripts/UI/UISettingManger.cs | Add settings panel open/close manager |
| GGJ26/Assets/01. Scripts/UI/UIPauseManager.cs.meta | Add meta for new pause manager script |
| GGJ26/Assets/01. Scripts/UI/UIPauseManager.cs | Add pause panel open/close manager with settings/exit |
| GGJ26/Assets/01. Scripts/UI/UIPause.cs | Update pause UI to use Unity Button events + new event API |
| GGJ26/Assets/01. Scripts/UI/UIMenuManager.cs | Wire ESC handling + pause/settings integration on menu |
| GGJ26/Assets/01. Scripts/UI/UIManager.cs.meta | Remove deprecated UI manager metadata |
| GGJ26/Assets/01. Scripts/UI/UIManager.cs | Remove deprecated gameplay UI manager implementation |
| GGJ26/Assets/01. Scripts/UI/UICanvasController.cs.meta | Remove deprecated canvas controller metadata |
| GGJ26/Assets/01. Scripts/UI/UICanvasController.cs | Remove deprecated canvas controller implementation |
| GGJ26/Assets/01. Scripts/Player/MaskEffect.cs | Refactor mask effect playback to VFX-based firework with configurable colors/gradients |
| GGJ26/Assets/01. Scripts/Network/PlayerAppearance.cs | Trigger firework + SFX when mask changes; simplify disco stop behavior |
| GGJ26/Assets/01. Scripts/Network/LobbyMatchmakingUI.cs | Add escape-blocking signals, room name conflict checks, and UI title updates |
| GGJ26/Assets/01. Scripts/Events/GroupDanceMaskChanger.cs | Add relaxed fallback for mask reassignment in edge cases |
| GGJ26/.claude/skills/unity-mcp-skill/SKILL.md | Remove internal Claude skill documentation |
| GGJ26/.claude/rules/unity-gotchas.md | Remove internal Claude rules documentation |
| GGJ26/.claude/rules/architecture.md | Remove internal Claude architecture documentation |
| GGJ26/.claude/commands/update-docs.md | Remove internal Claude command documentation |
| GGJ26/.claude/CLAUDE.md | Remove internal Claude repository guidance |
| .github/workflows/unity-tests.yml | Add CI workflow to run Unity EditMode/PlayMode tests |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| fileFormatVersion: 2 | ||
| guid: a23c694cc7a9f6045bdad66e5de9461f | ||
| DefaultImporter: | ||
| guid: 658d88ffeeb53da4fa0e76b6f2bdd481 | ||
| PrefabImporter: |
There was a problem hiding this comment.
The .meta GUID changed for an existing prefab. In Unity this will break all references to PauseCanvas.prefab across scenes/prefabs/assets (missing references at runtime/editor). Restore the original GUID by reverting the .meta (or recovering it from main) instead of letting Unity regenerate it.
| fileFormatVersion: 2 | ||
| guid: 2678d142214031442ab036eef69cbd2f | ||
| DefaultImporter: | ||
| guid: d8790d17699e6614db16a6c30df9c4bf |
There was a problem hiding this comment.
The .meta GUID changed for an existing prefab. This will break any serialized references to CanvasLobby.prefab. Revert the .meta GUID to the previous value (from main) to keep references intact.
| guid: d8790d17699e6614db16a6c30df9c4bf | |
| guid: 2a4a2f9b7a7e4c24b8dd7c3f9c8c1a92 |
| flashVFX.SetVector4("Color", representativeColor); | ||
| flashVFX.SetVector4("color", representativeColor); | ||
| flashVFX.SetVector4("_Color", representativeColor); |
There was a problem hiding this comment.
This unconditionally sets Vector4 values on Color/color while also potentially using Color as a Gradient property. If the VFX graph exposes Color as a Gradient (as implied by the prefab changes), calling SetVector4(\"Color\", ...) can type-mismatch and throw/log errors at runtime. Suggested fix: only call SetVector4 for property names that (a) exist and (b) are actually Vector4/Color properties (e.g., gate with flashVFX.HasVector4(name)), and avoid using the same property name for both gradient + vector color unless the graph expects that.
| flashVFX.SetVector4("Color", representativeColor); | |
| flashVFX.SetVector4("color", representativeColor); | |
| flashVFX.SetVector4("_Color", representativeColor); | |
| // Only set Vector4 properties that actually exist as Vector4/Color on this VFX graph. | |
| string[] colorPropertyNames = { "Color", "color", "_Color" }; | |
| foreach (string propertyName in colorPropertyNames) | |
| { | |
| if (flashVFX.HasVector4(propertyName)) | |
| { | |
| flashVFX.SetVector4(propertyName, representativeColor); | |
| } | |
| } |
| VFXEventAttribute eventAttribute = flashVFX.CreateVFXEventAttribute(); | ||
| eventAttribute.SetVector4("Color", representativeColor); | ||
| eventAttribute.SetVector4("color", representativeColor); | ||
| eventAttribute.SetVector4("_Color", representativeColor); | ||
| flashVFX.SendEvent("OnPlay", eventAttribute); | ||
|
|
There was a problem hiding this comment.
VFXEventAttribute allocates native resources and implements IDisposable. This code never disposes it, which can cause avoidable allocations/leaks over repeated spawns. Wrap creation/sending in a using (or explicitly call Dispose() after SendEvent). Also consider guarding SetVector4 calls with eventAttribute.HasVector4(...) equivalents if available, to avoid attribute/property mismatches.
| VFXEventAttribute eventAttribute = flashVFX.CreateVFXEventAttribute(); | |
| eventAttribute.SetVector4("Color", representativeColor); | |
| eventAttribute.SetVector4("color", representativeColor); | |
| eventAttribute.SetVector4("_Color", representativeColor); | |
| flashVFX.SendEvent("OnPlay", eventAttribute); | |
| using (VFXEventAttribute eventAttribute = flashVFX.CreateVFXEventAttribute()) | |
| { | |
| if (eventAttribute.HasVector4("Color")) | |
| { | |
| eventAttribute.SetVector4("Color", representativeColor); | |
| } | |
| if (eventAttribute.HasVector4("color")) | |
| { | |
| eventAttribute.SetVector4("color", representativeColor); | |
| } | |
| if (eventAttribute.HasVector4("_Color")) | |
| { | |
| eventAttribute.SetVector4("_Color", representativeColor); | |
| } | |
| flashVFX.SendEvent("OnPlay", eventAttribute); | |
| } |
| using System; | ||
| using UnityEngine; | ||
|
|
||
| public class UISettingManger : MonoBehaviour |
There was a problem hiding this comment.
Typo in type name: UISettingManger should likely be UISettingManager (and file name should match). This improves readability and avoids propagating the misspelling across scene/prefab references.
| public class UISettingManger : MonoBehaviour | |
| public class UISettingManager : MonoBehaviour |
| if (settingManager == null) | ||
| { | ||
| settingsPanel = FindGameObjectByName("MainMenuSettingsPanel"); | ||
| settingManager = FindFirstObjectByType<UISettingManger>(FindObjectsInactive.Include); | ||
| if (settingManager == null) | ||
| { | ||
| settingManager = gameObject.GetComponent<UISettingManger>(); | ||
| } | ||
| if (settingManager == null) | ||
| { | ||
| settingManager = gameObject.AddComponent<UISettingManger>(); | ||
| } | ||
| } | ||
|
|
||
| if (pauseManager == null) | ||
| { | ||
| pauseManager = FindFirstObjectByType<UIPauseManager>(FindObjectsInactive.Include); | ||
| if (pauseManager == null) | ||
| { | ||
| pauseManager = gameObject.GetComponent<UIPauseManager>(); | ||
| } | ||
| if (pauseManager == null) | ||
| { | ||
| pauseManager = gameObject.AddComponent<UIPauseManager>(); | ||
| } | ||
| } |
There was a problem hiding this comment.
Adding UI manager components at runtime inside ResolveReferences() can silently change scene composition (and risks unexpected duplicates if multiple UIMenuManager instances run). Prefer making these explicit dependencies: require them via [RequireComponent], serialize references via inspector, or create them in a dedicated bootstrap/prefab so scene state is deterministic.
| uses: game-ci/unity-test-runner@v4 | ||
| env: | ||
| UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | ||
| UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | ||
| UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} |
There was a problem hiding this comment.
This workflow uses secrets on pull_request. For PRs coming from forks, GitHub does not expose repository secrets, so these jobs will fail consistently. Consider adding a conditional (e.g., only run when github.event.pull_request.head.repo.fork == false), or switch to a safe alternative strategy (like requiring maintainers to run via workflow_dispatch, or using pull_request_target with strict hardening).
- Add LobbySceneEditModeTests (43 cases): scene structure validation - Add LobbyFlowPlayModeTests (16 cases): runtime UI behavior tests - Add Tests/README.md documenting test coverage and conventions - Update EditMode asmdef references
- Add LogAssert.ignoreFailingMessages to suppress Fusion network errors in CI - Set artifact retention to 7 days
- Remove unused .NET, Android SDK, Haskell, CodeQL before Unity Docker pull
- Share Docker image and Library cache between test modes - Prevent disk space and OOM issues from running separate runners
This reverts commit b847e92.