Client NetworkObjects experience Awake, Start, OnEnable, and TriggerEnter, CollisionEnter at world 0,0,0 upon instantiation
@NoelStephensUnity y travaille déjà.
Depuis le 17/7/2025.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
Description
When a client spawns a NetworkObject via NetworkSpawnManage.InstantiateNetworkPrefab() there is no position or rotation data passed into UnityEngine.Object.Instantiate() and therefore the object is created at world 0,0,0. On a later line of code the position and rotation are assigned, after instantiation.
This means Awake, Start, and OnEnable are all called when at world 0,0,0 -- this is arguably expected and why you have OnNetworkSpawn.
However, OnTriggerEnter (and probably OnCollisionEnter) also fire for things at world 0,0,0. That problem is outside of the scope of the OnNetworkSpawn warmup in my opinion.
Developers should not have to write custom code to handle this problem when the position and rotation could simply be passed into the instantiation.
internal NetworkObject InstantiateNetworkPrefab(GameObject networkPrefab, uint prefabGlobalObjectIdHash, Vector3? position, Quaternion? rotation)
{
Vector3 defaultPosition = position ?? Vector3.zero;
Quaternion defaultRotation = rotation ?? Quaternion.identity;
var networkObject = UnityEngine.Object.Instantiate(networkPrefab, defaultPosition, defaultRotation).GetComponent<NetworkObject>();
// networkObject.transform.position = position ?? networkObject.transform.position;
// networkObject.transform.rotation = rotation ?? networkObject.transform.rotation;
networkObject.NetworkManagerOwner = NetworkManager;
networkObject.PrefabGlobalObjectIdHash = prefabGlobalObjectIdHash;
return networkObject;
}
Environment
- OS: Windows 11
- Unity Version: 6000.1.3f1
- Netcode Version: 2.4.2
- Netcode Topology: Client-Server
- Langage dominant
- C#
- Étoiles
- 2.3k
- Forks
- 461
- Merge moyen
- 3 j 16 h
- PR mergées (30 j)
- 20
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Unity-Technologies/com.unity.netcode.gameobjects
-
stat:awaiting-response stat:imported type:bug
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
Unity-Technologies/com.unity.netcode.gameobjects#4159 · 3 commentaires ·
-
stat:reply-needed type:support
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
Unity-Technologies/com.unity.netcode.gameobjects#4095 · 10 commentaires ·
-
stat:awaiting-triage stat:Investigating type:bug
Unity-Technologies/com.unity.netcode.gameobjects#3912 · 5 commentaires · 1 personne assignée ·
-
Tracking type:feature-2.x
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Unity-Technologies/com.unity.netcode.gameobjects#3870 · 5 commentaires ·
-
Please error, or at least warn, when a managed type is included in INetworkSerializeByMemcpy OuverteTracking type:feature
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Unity-Technologies/com.unity.netcode.gameobjects#3830 · 7 commentaires ·
Toutes les issues de Unity-Technologies/com.unity.netcode.gameobjects
Issues similaires
-
[Feat] 조합 영역 구분선 개선 Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
type/automation type/tech-debt
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
t/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
ci-failure-cause test-failure
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100