예제 #1
0
        /// <summary>
        ///     Add a custom prefab to the manager.<br />
        ///     Checks if a prefab with the same name is already added.<br />
        ///     Added prefabs get registered to the <see cref="ZNetScene"/> on <see cref="ZNetScene.Awake"/>.
        /// </summary>
        /// <param name="customPrefab">Prefab to add</param>
        public void AddPrefab(CustomPrefab customPrefab)
        {
            if (!customPrefab.IsValid())
            {
                Logger.LogWarning($"Custom prefab {customPrefab} is not valid");
                return;
            }

            int hash = customPrefab.Prefab.name.GetStableHashCode();

            if (Prefabs.ContainsKey(hash))
            {
                Logger.LogWarning($"Prefab '{customPrefab}' already exists");
                return;
            }

            customPrefab.Prefab.transform.SetParent(PrefabContainer.transform, false);

            Prefabs.Add(hash, customPrefab);
        }