{"record":{"id":"f7652429cd411f46","repo":"Unity-Technologies/UnityCsReference","slug":"use-cameramode-to-set-user-defined-modes","errorCode":null,"errorMessage":"Use cameraMode to set user-defined modes","messagePattern":"Use cameraMode to set user-defined modes","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"Editor/Mono/SceneView/SceneView.cs","lineNumber":721,"sourceCode":"        internal static event Func<SceneView, VisualElement> addCustomVisualElementToSceneView;\n\n        // Used for performance tests\n        [AutoStaticsCleanupOnCodeReload]\n        internal static event Action<SceneView> onGUIStarted;\n        [AutoStaticsCleanupOnCodeReload]\n        internal static event Action<SceneView> onGUIEnded;\n\n        [Obsolete(\"Use cameraMode instead\", false)]\n        public DrawCameraMode m_RenderMode = 0;\n\n        [Obsolete(\"Use cameraMode instead\", false)]\n        public DrawCameraMode renderMode\n        {\n            get => m_CameraMode.drawMode;\n            set\n            {\n                if (value == DrawCameraMode.UserDefined)\n                    throw new ArgumentException(\"Use cameraMode to set user-defined modes\");\n                cameraMode = SceneRenderModeWindow.GetBuiltinCameraMode(value);\n            }\n        }\n\n        [SerializeField]\n        CameraMode m_CameraMode;\n\n        internal SceneOrientationGizmo m_OrientationGizmo;\n\n        public CameraMode cameraMode\n        {\n            get\n            {\n                // fix for case 969889 where the toolbar is empty when we haven't fully initialized the value\n                if (string.IsNullOrEmpty(m_CameraMode.name))\n                {\n                    m_CameraMode = SceneRenderModeWindow.GetBuiltinCameraMode(m_CameraMode.drawMode);\n                }","sourceCodeStart":703,"sourceCodeEnd":739,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/SceneView/SceneView.cs#L703-L739","documentation":"Thrown by the obsolete SceneView.renderMode setter when the value is DrawCameraMode.UserDefined. The renderMode property is deprecated in favor of cameraMode; user-defined modes cannot be assigned through renderMode because it only handles builtin modes. The setter delegates to SceneRenderModeWindow.GetBuiltinCameraMode which cannot resolve user-defined entries.","triggerScenarios":"Assigning sceneView.renderMode = DrawCameraMode.UserDefined directly in code. Code written against the old API that tries to set a custom draw mode through the deprecated property.","commonSituations":"Legacy editor scripts using the deprecated renderMode property. Upgrading Unity versions where renderMode became obsolete. Third-party tools that haven't migrated to cameraMode.","solutions":["Use sceneView.cameraMode = SceneView.AddCameraMode(name, section) or assign an existing CameraMode instead.","Migrate all renderMode assignments to cameraMode assignments.","Remove the Obsolete suppression pragma and fix compiler warnings to surface all deprecated usages."],"exampleFix":"// before\nsceneView.renderMode = DrawCameraMode.UserDefined;\n\n// after\nvar mode = SceneView.GetBuiltinCameraMode(DrawCameraMode.ShadedWireframe);\nsceneView.cameraMode = mode;","handlingStrategy":"validation","validationCode":"// Do not assign UserDefined through renderMode.\n// Migrate to:\nsceneView.cameraMode = SceneView.GetBuiltinCameraMode(DrawCameraMode.Textured);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Migrate all renderMode usages to cameraMode to avoid the deprecated property entirely.","Never pass DrawCameraMode.UserDefined to the renderMode setter."],"tags":["unity","scene-view","editor","deprecated","validation"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}