From c4ee93c29628dd56afdf5158d6568dd9a3b77957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C5=A0vec?= Date: Fri, 30 Aug 2024 19:30:08 +0200 Subject: [PATCH] Fix zenject reparenting issue --- Assets/DefaultNetworkPrefabs.asset | 3 +- .../GlobalBoostrap/NetworkManager.prefab | 13 +++++++++ Assets/Prefabs/Rig.prefab | 18 +++++++++++- Assets/Scripts/Installers/GlobalInstaller.cs | 29 +++++++++---------- 4 files changed, 44 insertions(+), 19 deletions(-) diff --git a/Assets/DefaultNetworkPrefabs.asset b/Assets/DefaultNetworkPrefabs.asset index 21f77b7e..614256cf 100644 --- a/Assets/DefaultNetworkPrefabs.asset +++ b/Assets/DefaultNetworkPrefabs.asset @@ -45,8 +45,7 @@ MonoBehaviour: SourceHashToOverride: 0 OverridingTargetPrefab: {fileID: 0} - Override: 0 - Prefab: {fileID: 8466719420925814164, guid: d2f34b93e15cc634590f037ba4513d1a, - type: 3} + Prefab: {fileID: 75161255762383020, guid: 1ef3259331ddc1f4d94b628323ec45f3, type: 3} SourcePrefabToOverride: {fileID: 0} SourceHashToOverride: 0 OverridingTargetPrefab: {fileID: 0} diff --git a/Assets/Prefabs/GlobalBoostrap/NetworkManager.prefab b/Assets/Prefabs/GlobalBoostrap/NetworkManager.prefab index 269fd0a9..e91c91fa 100644 --- a/Assets/Prefabs/GlobalBoostrap/NetworkManager.prefab +++ b/Assets/Prefabs/GlobalBoostrap/NetworkManager.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 3572856719409378894} - component: {fileID: 8614138672144993884} - component: {fileID: 1446823875350840172} + - component: {fileID: -5404414879667114088} m_Layer: 0 m_Name: NetworkManager m_TagString: Untagged @@ -99,3 +100,15 @@ MonoBehaviour: PacketDelayMS: 0 PacketJitterMS: 0 PacketDropRate: 0 +--- !u!114 &-5404414879667114088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8643863892294462044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2e5b279a1a044cee9d64e0ca5d85f175, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/Rig.prefab b/Assets/Prefabs/Rig.prefab index 91314f96..4b64481e 100644 --- a/Assets/Prefabs/Rig.prefab +++ b/Assets/Prefabs/Rig.prefab @@ -274,6 +274,10 @@ PrefabInstance: type: 3} insertIndex: -1 addedObject: {fileID: -510423355628046216} + - targetCorrespondingSourceObject: {fileID: 3924027509722682562, guid: 6974999791dc8804fafee05e319aa932, + type: 3} + insertIndex: -1 + addedObject: {fileID: -5770860015128552594} - targetCorrespondingSourceObject: {fileID: 3924027509007222379, guid: 6974999791dc8804fafee05e319aa932, type: 3} insertIndex: -1 @@ -315,7 +319,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} m_Name: m_EditorClassIdentifier: - GlobalObjectIdHash: 3394388680 + GlobalObjectIdHash: 918221477 InScenePlacedSourceGlobalObjectIdHash: 0 AlwaysReplicateAsRoot: 0 SynchronizeTransform: 1 @@ -342,6 +346,18 @@ MonoBehaviour: characterController: {fileID: 75161257133195802} audioListener: {fileID: 177002782121805273} fadeDuration: 2 +--- !u!114 &-5770860015128552594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75161255762383020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2e5b279a1a044cee9d64e0ca5d85f175, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &75161257133195781 stripped GameObject: m_CorrespondingSourceObject: {fileID: 3924027509007222379, guid: 6974999791dc8804fafee05e319aa932, diff --git a/Assets/Scripts/Installers/GlobalInstaller.cs b/Assets/Scripts/Installers/GlobalInstaller.cs index 4813d782..a3aab97b 100644 --- a/Assets/Scripts/Installers/GlobalInstaller.cs +++ b/Assets/Scripts/Installers/GlobalInstaller.cs @@ -1,6 +1,7 @@ using HurricaneVR.Framework.Core; using HurricaneVR.Framework.Core.Player; using HurricaneVR.Framework.Core.Utils; +using System.Collections; using Unity.Netcode; using UnityEngine; using Zenject; @@ -69,22 +70,18 @@ public class GlobalInstaller : MonoInstaller }) .NonLazy(); - Container.Bind() - .FromComponentInNewPrefab(networkManagerPrefab) - .AsSingle() - .OnInstantiated((ctx, obj) => - { - obj.name = networkManagerPrefab.name; - }) - .NonLazy(); + var go = Instantiate(networkManagerPrefab); + go.name = networkManagerPrefab.name; + var networkManager = go.GetComponent(); - Container.Bind() - .FromComponentInNewPrefab(playerPrefab) - .AsSingle() - .OnInstantiated((ctx, obj) => - { - obj.name = playerPrefab.name; - }) - .NonLazy(); + Container.BindInstance(networkManager) + .AsSingle(); + + var playerGO = Instantiate(playerPrefab); + playerGO.name = playerPrefab.name; + var playerComponent = playerGO.GetComponent(); + + Container.BindInstance(playerComponent) + .AsSingle(); } } \ No newline at end of file