跳到主要内容
知仓学习社ZHICANG

unity-netcode-design

Source-anchored design rules for Netcode for GameObjects 2.x

不碰外部(只输出文字)无严重或高危命中Besty0728/Unity-Skills

它会碰到什么

扫了多少9 个文本文件,64 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

> 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)

| # | Rule | Source anchor |

|---|------|---------------|

| 1 | Spawn() / Despawn() must be called on Server/Host only; client-side calls fail. | Runtime/Core/NetworkObject.cs:1884, 1921 |

| 2 | OnNetworkSpawn() runs before Unity Start() and after Awake/OnEnable. | Runtime/Core/NetworkBehaviour.cs:704 + InvokeBehaviourNetworkSpawn callers |

| 3 | Legacy [ServerRpc] method names must end with ServerRpc; [ClientRpc] must end with ClientRpc (ILPP enforced at compile time). | Editor/CodeGen/ ILPP validators |

| 4 | New [Rpc(SendTo.X)] has no naming constraint; SendTo has 11 values. | Runtime/Messaging/RpcTargets/RpcTarget.cs:9-80 |

| 5 | PlayerPrefab must exist in NetworkPrefabsList or NetworkConfig.Prefabs or 2.x runtime rejects it. | Runtime/Configuration/NetworkConfig.cs:40 + NetworkPrefabsList.cs:14 |

| 6 | Nested NetworkObjects are forbidden (NetworkObject inside another NetworkObject prefab). Re-parent at runtime via TrySetParent. | Runtime/Core/NetworkObject.cs:2135-2215 |

| 7 | NetworkVariable<T> requires T to be unmanaged or implement INetworkSerializable. string, List<>, class are rejected. | Runtime/NetworkVariable/NetworkVariable.cs:12 + ILPP |

| 8 | NetworkList<T> requires T: unmanaged, IEquatable<T>. It is NOT NetworkVariable<List<T>>. | Runtime/NetworkVariable/Collections/NetworkList.cs:14 |

| 9 | NetworkSceneManager.LoadScene/UnloadScene is Server-only. | Runtime/SceneManagement/NetworkSceneManager.cs:1496, 1252 |

| 10 | UnityTransport.SetRelayServerData and SetConnectionData are mutually exclusive; use one or the other. | Runtime/Transports/UTP/UnityTransport.cs:776-897 |

Sub-doc Routing

| Sub-doc | When to read |

|---------|--------------|

| [LIFECYCLE.md](./LIFECYCLE.md) | Lifecycle, callback ordering, Awake/OnNetworkSpawn/Start differences |

| [OWNERSHIP.md](./OWNERSHIP.md) | IsOwner/IsServer/IsHost permission matrix, ChangeOwnership, Distributed Authority |

| [RPC.md](./RPC.md) | Choosing RPC attributes, SendTo semantics, RpcInvokePermission, deprecated paths |

| [VARIABLES.md](./VARIABLES.md) | NetworkVariable/NetworkList init and serialization constraints |

| [SPAWNING.md](./SPAWNING.md) | Prefab registration → Spawn → Despawn, GlobalObjectIdHash, SpawnAsPlayerObject |

| [SCENE.md](./SCENE.md) | NetworkSceneManager, EnableSceneManagement, in-scene object sync |

| [TRANSPORT.md](./TRANSPORT.md) | UnityTransport direct / Relay / DebugSimulator configuration |

| [PITFALLS.md](./PITFALLS.md) | 30 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](../architecture/SKILL.md)

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.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,753
本站分层T1
该仓技能数83
原文件路径SkillsForUnity/unity-skills~/skills/netcode-design/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 83 个技能