界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
设计与创意 · SKILL.md

unity-netcode-design

unity-netcode-design

【设计与创意】Source-anchored design rules for Netcode for GameObjects 2.x

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: unity-netcode-design description: Source-anchored design rules for Netcode for GameObjects 2.x

Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.

Triggers

  • Writing or reviewing multiplayer code
  • Designing server/distributed authority
  • Wiring RPCs or NetworkVariables
  • Debugging netcode
  • 编写或审查多人联机代码、设计服务器/分布式权威、连接 RPC 或网络变量、排查 netcode 问题

Netcode for GameObjects - Design Rules

Advisory module. Every rule is distilled from com.unity.netcode.gameobjects 2.x source. Each rule cites a concrete file/line so the reasoning is auditable.

Mode: Documentation only — no REST skills to gate; load freely under any operating mode (Approval / Auto / Bypass).

When to Load This Module

Load before writing or reviewing any of:

  • NetworkBehaviour scripts (OnNetworkSpawn / OnNetworkDespawn / RPCs / NetworkVariables)
  • NetworkManager startup / shutdown / scene switching
  • NetworkObject Spawn / Despawn / ChangeOwnership / TrySetParent
  • UnityTransport configuration (direct connect / Relay)
  • Any code that branches on IsHost / IsServer / IsClient / IsOwner

Critical Rule Summary (memorize even if you skip the sub-docs)

#RuleSource anchor
1Spawn() / Despawn() must be called on Server/Host only; client-side calls fail.Runtime/Core/NetworkObject.cs:1884, 1921
2OnNetworkSpawn() runs before Unity Start() and after Awake/OnEnable.Runtime/Core/NetworkBehaviour.cs:704 + InvokeBehaviourNetworkSpawn callers
3Legacy [ServerRpc] method names must end with ServerRpc; [ClientRpc] must end with ClientRpc (ILPP enforced at compile time).Editor/CodeGen/ ILPP validators
4New [Rpc(SendTo.X)] has no naming constraint; SendTo has 11 values.Runtime/Messaging/RpcTargets/RpcTarget.cs:9-80
5PlayerPrefab must exist in NetworkPrefabsList or NetworkConfig.Prefabs or 2.x runtime rejects it.Runtime/Configuration/NetworkConfig.cs:40 + NetworkPrefabsList.cs:14
6Nested NetworkObjects are forbidden (NetworkObject inside another NetworkObject prefab). Re-parent at runtime via TrySetParent.Runtime/Core/NetworkObject.cs:2135-2215
7NetworkVariable<T> requires T to be unmanaged or implement INetworkSerializable. string, List<>, class are rejected.Runtime/NetworkVariable/NetworkVariable.cs:12 + ILPP
8NetworkList<T> requires T: unmanaged, IEquatable<T>. It is NOT NetworkVariable<List<T>>.Runtime/NetworkVariable/Collections/NetworkList.cs:14
9NetworkSceneManager.LoadScene/UnloadScene is Server-only.Runtime/SceneManagement/NetworkSceneManager.cs:1496, 1252
10UnityTransport.SetRelayServerData and SetConnectionData are mutually exclusive; use one or the other.Runtime/Transports/UTP/UnityTransport.cs:776-897

Sub-doc Routing

Sub-docWhen to read
LIFECYCLE.mdLifecycle, callback ordering, Awake/OnNetworkSpawn/Start differences
OWNERSHIP.mdIsOwner/IsServer/IsHost permission matrix, ChangeOwnership, Distributed Authority
RPC.mdChoosing RPC attributes, SendTo semantics, RpcInvokePermission, deprecated paths
VARIABLES.mdNetworkVariable/NetworkList init and serialization constraints
SPAWNING.mdPrefab registration → Spawn → Despawn, GlobalObjectIdHash, SpawnAsPlayerObject
SCENE.mdNetworkSceneManager, EnableSceneManagement, in-scene object sync
TRANSPORT.mdUnityTransport direct / Relay / DebugSimulator configuration
PITFALLS.md30 concrete hallucination pitfalls

Routing to Other Modules

  • Generating NetworkBehaviour scripts → use the functional netcode module's netcode_add_network_behaviour_script
  • Bulk attaching NetworkObject/NetworkTransform in the scene → netcode module Components skills
  • Architecture-level decisions (Server-authoritative vs Distributed Authority) → also load architecture

Version Scope

This document targets com.unity.netcode.gameobjects 2.x (validated against 2.11.0, Unity 6000.0+). Some APIs (SendTo.Authority, RpcInvokePermission, the universal [Rpc] attribute) do not exist in 1.x.

我的收藏