Skip to content

Project Structure

the-real-ltcg edited this page Jul 19, 2026 · 1 revision

Project Structure

Assets/
  Scenes/
    SampleScene.unity        # the (only) playable scene
  Scripts/                   # game-specific code
    NetworkUI.cs              # host/client menu, IP entry, exit button
    PlayerShoot.cs             # contains DartController — throws darts (T key)
    Projectile.cs               # dart collision handling, tags players, destroys itself
    ColorController.cs           # per-player random color, synced via NetworkVariable
    KeyboardInputHandler.cs        # Ctrl+Shift+Alt+X quit shortcut
    ClientNetworkTransform.cs       # custom NetworkTransform (client-authoritative movement)
    ClientNetworkAnimator.cs         # custom NetworkAnimator (client-authoritative animation)
  Prefabs/
    NetworkPlayer.prefab      # the networked player object
    Dart_V1.prefab            # the thrown projectile
  StarterAssets/              # Unity's third-person controller asset package (mostly unmodified)
    ThirdPersonController/Scripts/ThirdPersonController.cs   # movement, freeze/tag logic lives here too
    Environment/               # arena kit: boxes, ramps, stairs, tunnel, materials, textures
    InputSystem/                # input action bindings (WASD/mouse/space/shift)
    Mobile/                     # touch controls (not currently used/wired for this game)
  TextMesh Pro/                # TMP package assets (fonts, examples)
Packages/                    # Unity Package Manager manifest/lock
ProjectSettings/              # Unity project configuration (must stay in sync with the Editor version)
.vscode/                      # editor config for VS Code

Not in the repo (intentionally)

  • Library/, Temp/, obj/, Build/, Builds/, Logs/, UserSettings/, .vs/ — regenerated by Unity/your IDE, covered by .gitignore.
  • New folder/ — a prebuilt Windows executable that existed in the original download; excluded here since it's binary build output, not source. See Building a Release to make your own.

Where the actual game logic lives

Two scripts do almost all of the gameplay work:

  • Assets/Scripts/PlayerShoot.cs (class DartController) — reads the T key on the owning client, then calls a ServerRpc that spawns and launches the dart.
  • Assets/Scripts/Projectile.cs — runs server-side collision detection; on hitting a tagged "Player", it calls into ThirdPersonController.TagPlayerServerRpc(true).
  • ThirdPersonController.cs (StarterAssets, extended) — holds the _isTagged flag that zeroes out move speed, plus the untag-on-collision logic.

See Networking Architecture for how these RPCs fit into the client/server model.

Clone this wiki locally