Skip to content

Archived on 2026-10-24. This is a historical implementation note, not current setup instructions or an active task list. Original claims, code examples, file paths, and completion statements have not all been revalidated. Use the current documentation and issue register for maintenance decisions.

Hyperspace Transition Setup Guide

Overview

The hyperspace transition has been extracted into a separate HyperspaceTransition component with following improvements: - Smooth background fading (seamless transitions instead of hard cuts) - Camera-based motion blur (camera Y movement creates blur effect) - Particle system timing (stars activate with space background) - Clean separation of concerns (MenuController is now much cleaner)

Unity Setup Instructions

1. Add HyperspaceTransition Component

In your MainMenu scene: 1. Select the GameObject that has MenuController (or create a new GameObject) 2. Add HyperspaceTransition component 3. In MenuController, assign this GameObject to the Hyperspace Transition field

2. Configure Background References

In the HyperspaceTransition component Inspector, assign:

Backgrounds: - Land Background → Your planet/ground background image - Sky Background → Sky/atmosphere background image - Space Background → Outer space background image

RectTransforms: - Land Background Transform → RectTransform of land background - Sky Background Transform → RectTransform of sky background - Space Background Transform → RectTransform of space background

Canvas Groups: - Add CanvasGroup component to each background image - Assign these to: - Land Canvas Group - Sky Canvas Group - Space Canvas Group

3. Configure Particle Systems

In the HyperspaceTransition component Inspector: - Star Particles → Your star particle system - Falling Star Particles → Your falling star particle system

Important: Both particle systems should be inactive (uncheck "Play On Awake" in Particle System component) - Particles are part of the space background and will activate when space background settles

4. Configure Camera for Motion Blur

In the HyperspaceTransition component Inspector: - Main Camera → Your main camera (creates motion blur through Y movement) - Camera Start Y → Initial camera Y position (default: 0.5) - Camera End Y → Final camera Y position (default: 0.0)

How Motion Blur Works: - Camera moves from Start Y to End Y over the entire transition duration - This movement creates the motion blur effect - Adjust values to control blur intensity and effect

5. Adjust Timing (Optional)

  • Hyperspace Duration → Total transition time (default: 3s)
  • Land Slide Duration → Time for land to slide down (default: 1.5s)

Background Size Requirements

Each background image should be: - Width: Screen width (or wider) - Height: At least 2x screen height

Why 2x height? The backgrounds slide down by 2 screen heights to ensure they're completely off-screen before the next background appears.

How Animation Works

Phase 1: Launch (0 - 1.5s)

  1. Land background slides down rapidly (accelerating)
  2. Camera moves from Start Y to End Y (creates motion blur effect)
  3. Land fades from alpha 1 → 0 while sliding
  4. Sky background fades in (alpha 0 → 1)

Phase 2: Hyperspace (1.5s - 2.7s)

  1. Sky background is fully visible
  2. Sky background slides down slowly
  3. Space background fades in (alpha 0 → 1)
  4. Camera continues moving (maintains blur effect)

Phase 3: Arrival (2.7s - 3s)

  1. Sky starts fading out
  2. Space background settles into position (y = 0)
  3. Particles activate when space background is settled (part of space background)
  4. Camera movement completes (blur ends naturally)

Visual Stack Order

In Unity's Hierarchy, order your backgrounds from bottom to top: 1. Space Background (bottom layer - will be visible first) 2. Sky Background (middle layer - visible during hyperspace) 3. Land Background (top layer - visible initially)

Troubleshooting

Transition doesn't play

  • Check that Hyperspace Transition field is assigned in MenuController
  • Verify all Image and RectTransform references are assigned
  • Check Console for error messages

Backgrounds don't appear

  • Ensure CanvasGroup alpha starts at correct values (Land=1, Sky=0, Space=0)
  • Check that backgrounds are enabled in Inspector
  • Verify RectTransform positions are correct in InitializeBackgrounds()

Particles don't show

  • Make sure particle systems have ParticleSystem components
  • Ensure particle systems are initially disabled (not playing on Awake)
  • Check that particle references are assigned in Inspector
  • Particles activate late in the transition (90% of hyperspace duration)

Motion blur doesn't show

  • Ensure Main Camera is assigned in Inspector
  • Check that camera Y movement creates visible effect
  • Adjust Camera Start Y and Camera End Y values
  • Larger movement = more intense blur effect

Transitions are too fast/slow

  • Adjust Hyperspace Duration and Land Slide Duration values
  • These values control timing of all phases

Code Structure

Files Modified/Created

  • Created: Assets/Script/App/UI/Controllers/HyperspaceTransition.cs
  • Modified: Assets/Script/App/UI/Controllers/MenuController.cs
  • Removed all hyperspace animation logic
  • Added single HyperspaceTransition reference
  • Simplified StartHyperspaceTransition() to delegate to HyperspaceTransition component

Next Steps

  1. Set up component references in Unity Inspector
  2. Assign main camera for motion blur effect
  3. Test the transition by running the scene
  4. Adjust camera Y values for desired blur intensity
  5. Fine-tune particle systems for optimal visual effect

Important Notes

  • The animation automatically initializes the menu when complete
  • All phases use DOTween for smooth, performant animations
  • No post-processing required - motion blur is achieved through camera movement
  • Particle systems are part of space background, activate at end of transition
  • Camera movement creates the blur effect naturally- Particle systems only activate during the sky phase as requested