.claude/skills/camera-module/SKILL.md
CameraModule reference — Cinemachine virtual camera management, shake effects, zoom, follow/look-at targets. Use when working with cameras, screen shake, or camera transitions.
npx skillsauth add punkfuncgames/tetris-clone camera-moduleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Package: com.punkfuncgames.camera | Define: PUNKFUNC_CAMERA
Location: Packages/com.punkfuncgames.camera/Runtime/PunkFuncGames.Camera/
Namespace: PunkFuncGames.Camera
Properties:
Camera MainCameraReadOnlyReactiveProperty<string> ActiveCameraNameCamera Switching:
SwitchCamera(string cameraName, float blendTime = 1f) — priority-based (target=10, previous=0)Targets:
SetFollowTarget(Transform target) — sets on current + all cameras without followSetLookAtTarget(Transform target) — sets on current cameraEffects:
Shake(float intensity = 1f, float duration = 0.3f) — Cinemachine noise or DOTween position fallbackSetZoom(float zoom, float duration = 0.5f) — tweens OrthographicSize (ortho) or FOV (perspective)ResetCamera() — kills all tweens, resets noise gainsCoordinate Conversion:
Vector3 ScreenToWorldPoint(Vector2 screenPosition)Vector2 WorldToScreenPoint(Vector3 worldPosition)No constructor dependencies. Finds Camera.main and adds CinemachineBrain if missing.
Camera Registration (call from MonoBehaviour or service):
RegisterCamera(string name, CinemachineCamera camera) — caches noise componentUnregisterCamera(string name)Shake Strategy:
| Event | Key Fields |
|-------|------------|
| CameraShakeRequest | Intensity (1f), Duration (0.3f) |
| CameraFollowRequest | Target (Transform), BlendTime (0.5f) |
CameraEventHandler bridges events to CameraService automatically.
CameraInstaller.Install(builder, options);
// Registers: CameraService (Singleton), CameraEventHandler (Singleton)
// Events: CameraShakeRequest, CameraFollowRequest
// Direct service call
_cameraService.SwitchCamera("BossCamera", blendTime: 2f);
_cameraService.SetFollowTarget(player.transform);
_cameraService.Shake(intensity: 2f, duration: 0.5f);
_cameraService.SetZoom(5f, duration: 1f);
// Via MessagePipe (decoupled)
_shakePublisher.Publish(new CameraShakeRequest(intensity: 1.5f, duration: 0.4f));
_followPublisher.Publish(new CameraFollowRequest(player.transform, blendTime: 1f));
// Coordinate conversion
Vector3 worldPos = _cameraService.ScreenToWorldPoint(Input.mousePosition);
development
WalletModule reference — currency management with BigDouble support, reactive properties, caps, lifetime stats, and persistence. Use when working with currencies, wallets, or financial systems.
development
UnlockConditionModule reference — composable unlock conditions using ScriptableObjects with AND/OR/NOT logic, stat/currency/upgrade/prestige/gamestate/boolean checks, reactive service layer with progress tracking. Use when implementing unlock systems, gating, or progression requirements.
development
UndoModule reference — command pattern with undo/redo stacks, command merging, and reactive state. Use when implementing undo/redo, undoable actions, or command patterns.
tools
Unity UI Toolkit reference — UXML documents, USS styling, MVVM pattern (ViewModel + Presenter), custom VisualElements, responsive layout, animations, performance guidelines, and complete Figma-to-UI-Toolkit property mapping. Use when building or modifying UI with UI Toolkit, creating UXML/USS files, writing ViewModels or Presenters, designing screens/panels/components, or converting Figma designs to UI Toolkit.