Skip to content

Commit 065d8aa

Browse files
committed
fix: Added error logging when trying to spawn unregistered prefab
1 parent 43b7f79 commit 065d8aa

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

MLAPI/Spawning/SpawnManager.cs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -271,21 +271,32 @@ internal static NetworkedObject CreateLocalNetworkedObject(bool softCreate, ulon
271271
}
272272
else
273273
{
274-
GameObject prefab = NetworkingManager.Singleton.NetworkConfig.NetworkedPrefabs[GetNetworkedPrefabIndexOfHash(prefabHash)].Prefab;
274+
int prefabIndex = GetNetworkedPrefabIndexOfHash(prefabHash);
275275

276-
NetworkedObject networkedObject = ((position == null && rotation == null) ? MonoBehaviour.Instantiate(prefab) : MonoBehaviour.Instantiate(prefab, position.GetValueOrDefault(Vector3.zero), rotation.GetValueOrDefault(Quaternion.identity))).GetComponent<NetworkedObject>();
277-
278-
if (parent != null)
276+
if (prefabIndex < 0)
279277
{
280-
networkedObject.transform.SetParent(parent.transform, true);
281-
}
278+
if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Failed to create object locally. [PrefabHash=" + prefabHash + "]. Hash could not be found. Is the prefab registered?");
282279

283-
if (NetworkSceneManager.isSpawnedObjectsPendingInDontDestroyOnLoad)
284-
{
285-
GameObject.DontDestroyOnLoad(networkedObject.gameObject);
280+
return null;
286281
}
282+
else
283+
{
284+
GameObject prefab = NetworkingManager.Singleton.NetworkConfig.NetworkedPrefabs[prefabIndex].Prefab;
287285

288-
return networkedObject;
286+
NetworkedObject networkedObject = ((position == null && rotation == null) ? MonoBehaviour.Instantiate(prefab) : MonoBehaviour.Instantiate(prefab, position.GetValueOrDefault(Vector3.zero), rotation.GetValueOrDefault(Quaternion.identity))).GetComponent<NetworkedObject>();
287+
288+
if (parent != null)
289+
{
290+
networkedObject.transform.SetParent(parent.transform, true);
291+
}
292+
293+
if (NetworkSceneManager.isSpawnedObjectsPendingInDontDestroyOnLoad)
294+
{
295+
GameObject.DontDestroyOnLoad(networkedObject.gameObject);
296+
}
297+
298+
return networkedObject;
299+
}
289300
}
290301
}
291302
else

0 commit comments

Comments
 (0)